views:

76

answers:

1

I tried to load a entity by domainservice(async) in on line of code like:

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

But I got following error: The type 'SilverlightApplication1.Book' cannot be used as type parameter 'TEntity' in the generic type or method 'System.ServiceModel.DomainServices.Client.DomainContext.Load(System.ServiceModel.DomainServices.Client.EntityQuery, System.Action>, object)'. There is no implicit reference conversion from 'SilverlightApplication1.Book' to 'System.ServiceModel.DomainServices.Client.Entit

how to fix it?

A: 

you neet to use EntityQuery, look at your stack trace it is give solution.

implement method 'GetBookById' at your DomainService (at the server):

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

And then load data like this:

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
}

Alexander Bykin