C# Silverlight-LinqToEntities-如何返回匿名类型
我不确定我是不是走对了路。我有一个Silverlight应用程序,很多时候都使用实体框架。我有两个实体映射到我的数据库:Header和Details。我想提交一个left-outter连接来获取所有的头和细节计数——即使头记录没有细节记录。以下是我希望从客户端运行的Linq查询:C# Silverlight-LinqToEntities-如何返回匿名类型,c#,silverlight,entity-framework,linq-to-entities,anonymous-types,C#,Silverlight,Entity Framework,Linq To Entities,Anonymous Types,我不确定我是不是走对了路。我有一个Silverlight应用程序,很多时候都使用实体框架。我有两个实体映射到我的数据库:Header和Details。我想提交一个left-outter连接来获取所有的头和细节计数——即使头记录没有细节记录。以下是我希望从客户端运行的Linq查询: var query = from head in storeContext.Headers join detail in storeContext.Details on head.H
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()
};
因为这是Silverlight,所以我需要构建查询,然后从我的域服务(客户端上的上下文)使用storeContext.Load()
方法将其提交到服务器。因为这个方法需要一个类型,所以我不知道如何构造调用以返回一个匿名类型,就像我上面提到的那样
我做错了吗?我应该为类似的事情使用Invoke方法吗?如果是,如何定义要返回的类型以及在何处定义
如果有人能给我指出正确的方向,我会非常感激的
谢谢。。。Scott您永远不能从方法返回匿名类型的实例值。匿名类型始终是方法的本地类型。如果要通过WCF返回类型,则必须自己编写类,而不是依赖匿名类型。您永远不能从方法返回匿名类型的实例值。匿名类型始终是方法的本地类型。如果要通过WCF返回类型,则必须自己编写类,而不是依赖匿名类型。不能返回匿名类型。它们必然是当前范围的局部 您的查询看起来正确,但需要返回命名类型:
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()
};
您的查询方法将需要返回一个IEnumerable
:
public IEnumerable GetInfo()
{
变量查询。。。
返回查询;
}
您不能返回匿名类型。它们必然是当前范围的局部
您的查询看起来正确,但需要返回命名类型:
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()
};
您的查询方法将需要返回一个IEnumerable
:
public IEnumerable GetInfo()
{
变量查询。。。
返回查询;
}
您不能返回注释性类型,无论您是否在WCF RIA中,或者您的任何可能的副本都不能返回注释性类型,无论您是否在WCF RIA中,或者什么可能的重复?你不能用dynamic
包装匿名类型吗?@Jeff-我还没有玩过dynamic
,所以我不知道。我也不知道,但我现在很好奇。我并不认为这一定是个好主意,但很有趣。谢谢你的帮助。这解决了我的问题。问:在clinet和服务器上创建helper类更好吗,还是只将Using添加到客户端?@Scott,您应该能够在服务器上创建类,如果您创建元数据类,它将自动在客户端上创建。您不能通过使用动态
包装它来返回匿名类型吗?@Jeff-我还没有玩过动态
,所以我不知道。我也不知道,但我现在很好奇。我并不认为这一定是个好主意,但很有趣。谢谢你的帮助。这解决了我的问题。问题:在clinet和服务器上创建helper类更好吗,还是只向客户端添加Using?Scott,您应该能够在服务器上创建该类,如果您创建元数据类,它将自动在客户端上创建。