我想做点什么
我确实喜欢
query_ = From g In DomainService.GetGEsQuery Select New GE With {.Desc = g.codDesc}
“这导致运行时错误,我尝试了各种组合但失败了”
请帮忙。
答案 0 :(得分:0)
我假设你试图在客户端这样做。如果是这样,你可以做这样的事情
DomainService.Load(DomainService.GetGEsQuery().Where(g => g.codDesc == "something"), lo =>
{
if (lo.HasError == false)
{
List<string> temp = lo.Entities.Select(a => a.Name).ToList();
}
}, null);
您也可以在服务器端(我个人更喜欢)这样做
public IQueryable<string> GetGEStringList(string something)
{
return this.ObjectContext.GE.Where(g => g.codDesc == something).Select(a => a.Name);
}
希望这有帮助
答案 1 :(得分:0)
DomainService.GetGEsQuery()返回IQueryable,仅在后续异步加载中有用。你在方法调用中缺少(),但这只是第一个问题。
您可以对使用Where
等返回的查询应用过滤器操作,但仍需将其传递到域上下文的Load
方法(在您的示例中称为DomainService
) 。
示例Jack7已发布显示来自load方法的匿名回调,然后该方法访问加载对象lo
内的结果,并仅使用其他查询提取所需字段。请注意,您可以在RIA服务中过滤查询,但不能更改基本返回类型(即,您无法在客户端过滤掉不需要的列)。
Jack7的第二个建议是实现特定方法服务器端,只返回您想要的数据,是您的最佳选择。