Ich treffe wirklich eine Mauer mit den neuen C# basierten Azure Mobile Services, und es ist auch wirklich einfach :( Ich kann nicht für das Leben von mir die Abfrage bekommen Betrieb zurückzukehren Kind Eigenschaftswerte ich habe die todo Artikel des Standard-Projekt wie dieses geändert:.Azure Mobile Services C# gibt keine untergeordneten Elemente zurück
public class TodoItem : EntityData
{
public TodoItem()
{
this.Numbers = new Collection<TodoItemNumbers>(new List<TodoItemNumbers>
{
new TodoItemNumbers{Value = 1},
new TodoItemNumbers{Value = 2},
new TodoItemNumbers{Value = 3},
new TodoItemNumbers{Value = 4},
new TodoItemNumbers{Value = 5},
});
}
public virtual ICollection<TodoItemNumbers> Numbers { get; set; }
public string Text { get; set; }
public bool Complete { get; set; }
}
Und dann habe ich die TodoItemNumbers Klasse definiert wie folgt aus:
public class TodoItemNumbers : EntityData
{
private int _value;
public int Value
{
get { return _value; }
set
{
_value = value;
Id = value.ToString();
}
}
public string TodoItemId { get; set; }
}
im TodoItemController I habe die Query übersteuert hod wie diese
protected override IQueryable<TodoItem> Query()
{
return base.Query().Include(x => x.Numbers);
}
Nichts davon die Zahlen Eigenschaft wird zurückkehren, wenn ich eine Anfrage mit Fiddler machen. In einem Moment der madness I modifiziert auch die Initialize-Methode der Steuerung dieses umfassen:
protected override void Initialize(HttpControllerContext controllerContext)
{
base.Initialize(controllerContext);
myContext context = new myContext();
context.Configuration.LazyLoadingEnabled = false;
context.Configuration.ProxyCreationEnabled = false;
DomainManager = new EntityDomainManager<TodoItem>(context, Request, Services);
}
Notiere die träges Laden und Proxy Schaffung haben beide ausgeschaltet sind. Kann jemand dieses einfache Szenario schlagen? Ich fühle nicht die gute Stimmung auf diesem einen.
Update So, wie ich unten beantwortet habe ich in der Lage, den Service zu bekommen, um die Daten durch Hinzufügen in der $ erweitern, um die Abfrage zurückzukehren. Nun aber bin ich wirklich darauf angewiesen, dass der Client diesen Parameter zur Anfrage hinzufügt. Es gibt immer nur die Basisdaten zurück.
var data = await App.MobileService.GetTable<TodoItem>()
.ToListAsync();
werden die untergeordneten Eigenschaften nicht zurück, und es gibt nicht eine Include-Option auf dem Ergebnistyp
Wenn Sie das 'virtual' aus der collection -Eigenschaft löschen, wird es keine Lazy Load verwenden (das beantwortet unsere Frage nicht, aber es ist nett zu wissen) – BrunoLM