Sto davvero colpendo un muro di mattoni con i nuovi servizi mobili Azure basati su C# ed è anche molto semplice :( Non riesco a ottenere la query operazione per restituire i valori di proprietà bambino ho la voce todo del progetto predefinito modificato in questo modo:.Servizi mobili di Azure C# non restituisce entità figlio
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; }
}
E poi ho la classe TodoItemNumbers definita in questo modo:
public class TodoItemNumbers : EntityData
{
private int _value;
public int Value
{
get { return _value; }
set
{
_value = value;
Id = value.ToString();
}
}
public string TodoItemId { get; set; }
}
Nel TodoItemController I Hai ignorato la Query incontrata hod like this
protected override IQueryable<TodoItem> Query()
{
return base.Query().Include(x => x.Numbers);
}
Nessuno di ciò restituirà la proprietà Numbers quando faccio una richiesta con Fiddler. In un momento di follia ho anche modificato il metodo di inizializzazione del controller per includere questo:
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);
}
Nota caricamento pigro e creazione di proxy sono stati entrambi spenti. Qualcuno sa come battere questo semplice scenario? Non sento le vibrazioni positive su questo.
Aggiornamento Quindi, come ho risposto qui di seguito sono stato in grado di ottenere il servizio per restituire i dati con l'aggiunta nel $ espandersi per la query. Ora però sono davvero bloccato a far sì che il client aggiunga quel parametro alla richiesta. Restituisce sempre solo i dati di base.
var data = await App.MobileService.GetTable<TodoItem>()
.ToListAsync();
non restituirà le proprietà secondarie, e non c'è un'opzione Includere sul tipo di risultato
Se si rilascia il 'virtuale' dalla proprietà della raccolta non verrà utilizzato il carico lazy (questo non risponde alla nostra domanda ma potrebbe essere bello sapere) – BrunoLM