Silverlight - LinqToEntities - 如何返回匿名类型

Sco*_*ott 0 c# silverlight linq-to-entities entity-framework anonymous-types

我不确定我是否正确地走这条路.我有一个Silverlight应用程序,并使用实体框架的很多.我有两个实体映射到我的数据库:标题和详细信息.我想提交一个左外联接来获取所有标题和详细信息 - 即使标题记录没有详细记录.这是我想从客户端运行的Linq查询:

var query =
      from head in storeContext.Headers
      join detail in storeContext.Details
      on head.HeadId equals details.HeadId
      into group
      select new 
      {
        Desc = head.Description,
        MyCount = group.Count()
      };
Run Code Online (Sandbox Code Playgroud)

由于这是Silverlight,我需要构建我的查询,然后使用storeContext.Load<T>()我的域服务(客户端上下文)中的方法将其提交给服务器.因为这个方法期待一个类型,我不知道如何构建调用以返回匿名类型,因为我在上面?

我做错了吗?我应该在这样的事情上使用Invoke方法吗?如果是这样,我如何定义我想要返回的类型?

是否有人可以指出我正确的方向,我真的会批评它.

谢谢......斯科特

Chr*_*isF 5

您无法返回匿名类型.它们必然是当前范围的本地.

您的查询看起来正确,但您需要返回一个命名类型:

var query =
      from head in storeContext.Headers
      join detail in storeContext.Details
      on head.HeadId equals details.HeadId
      into group
      select new MyHelper // SPECIFY A CLASS HERE
      {
        Desc = head.Description,
        MyCount = group.Count()
      };
Run Code Online (Sandbox Code Playgroud)

您的查询方法需要返回IEnumerable<MyHelper>:

public IEnumerable<MyHelper> GetInfo()
{
    var query ...

    return query;
}
Run Code Online (Sandbox Code Playgroud)