J'utilise ADO.Net Data Services (Astoria) dans Silverlight 3 et je souhaite retarder le chargement des propriétés sur une entité jusqu'à la fin du chargement initial. Cependant, lorsque je suis prêt à les charger, je voudrais regrouper les demandes de chargement ensemble.Charger une propriété dans un lot dans ADO.Net Data Services dans Silverlight
// this is what I want to avoid
var c = (from c in ctx.Customers.Expand("Address,Phone,Email")
where c.Id = 12
select c).Take(1) as DataServiceQuery<Customer>;
Je suis arrivé jusqu'ici:
// I can do this instead
var c = (from c in ctx.Customers // .Expand("Address,Phone,Email")
where c.Id = 12
select c).Take(1) as DataServiceQuery<Customer>;
c.BeginExecute(CustomerCallback, objState);
...
// Later, when I want properties, I need to do this
ctx.BeginLoadProperty(c, "Address", AddressCallback, objState);
ctx.BeginLoadProperty(c, "Phone", PhoneCallback, objState);
ctx.BeginLoadProperty(c, "Email", EmailCallback, objState);
Cependant, je ne peux pas comprendre comment comment obtenir un objet DataServiceRequest pour une demande de propriété de charge pour passer à BeginExecuteBatch. Est-il possible d'émettre ces requêtes (et potentiellement d'autres qui ne sont pas associées au chargement de propriété client) dans le même lot en obtenant une DataServiceQuery?
Quelque chose comme ceci:
// c is the customer from the above load
ctx.BeginExecuteBatch(BatchCallback, objState, new []{
ctx.GetLoadQuery(c, "Address"),
ctx.GetLoadQuery(c, "Phone"),
ctx.GetLoadQuery(c, "Email"),
GetOtherNonPropertyQuery()
});
Merci beaucoup c'est exactement ce que je cherchais. –
pas de soucis je suis heureux je pourrais aider – dmportella