2010-09-05 2 views
1

j'ai essayé de charger une entité par DomainService (async) en ligne de code comme:DomainContext charge

context.Load<Book>(
context.Books.Where(b => b.BookID == 1), 
(s, e) => 
{ 
    _book = e.Results; 
}, 
null); 

Mais je me suis erreur suivant: Le type « SilverlightApplication1.Book » ne peut pas être utilisé comme paramètre de type 'TEntity' dans le type ou la méthode générique 'System.ServiceModel.DomainServices.Client.DomainContext.Load (System.ServiceModel.DomainServices.Client.EntityQuery, System.Action>, objet)'. Il n'y a pas de conversion de référence implicite de 'SilverlightApplication1.Book' à 'System.ServiceModel.DomainServices.Client.Entit

comment y remédier?

Répondre

4

vous ne devez pas utiliser EntityQuery, regardez votre trace de pile c'est donner une solution.

implémenter la méthode 'GetBookById' à votre DomainService (au serveur):

public IQueryable GetBookById(int Id)
{
return this.ObjectContext.Book.Where(r => r.Id == Id);
}

Et puis charger des données comme ceci:

EntityQuery query = context.GetBookByIdQuery(1);
context.Load(query, OnBookLoaded, null);

private void OnBookLoaded(LoadOperation lo)
{
// DO WITH DATA WHAT YOU NEED, NOTE: USE 'lo.Entities' there is loaded data
}

Questions connexes