DomainContext加载

时间:2010-09-05 00:07:35

标签: silverlight linq wcf-ria-services domainservices

我尝试通过domainservice(async)在代码行中加载一个实体,如:

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

但我得到以下错误: 类型'SilverlightApplication1.Book'不能在泛型类型或方法'System.ServiceModel.DomainServices.Client.DomainContext.Load(System.ServiceModel.DomainServices.Client.EntityQuery,System.Action&gt;中)中用作类型参数'TEntity',宾语)'。没有从'SilverlightApplication1.Book'到'System.ServiceModel.DomainServices.Client.Entit

的隐式引用转换

如何解决?

1 个答案:

答案 0 :(得分:4)

你需要使用EntityQuery,看看你的堆栈跟踪它是否给出解决方案。

在您的DomainService(在服务器上)实现方法'GetBookById':

  

public IQueryable GetBookById(int Id)
  {
  返回this.ObjectContext.Book.Where(r =&gt; r.Id == Id);
  }

然后像这样加载数据:

  

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

     

private void OnBookLoaded(LoadOperation lo)
  {
  //用数据做什么你需要的,注意:使用'lo.Entities'有加载的数据
  }