我有这个
linq到实体查询:
c.CreateQuery<T_Hotels>("T_Hotels").Where(item => item.Id > 0).GroupBy(item => new { item.Location, item.Name }).Select(group => new { group.Key, Total = group.Sum(item => item.Id) })
我想在类Helper的方法中实现所有内容,如何声明GroupBy和Select的表达式,返回类型是什么?
public IQueryable<???> GetHotelsGroupBy(Expression<Func<T_Hotels, bool>> pWhere,
??? pGroupBy, ??? pSelect)
{
return c.CreateQuery<T_Hotels>("T_Hotels").Where(pWhere).GroupBy(pGroupBy).Select(pSelect);
}
抱歉我的英语.
里诺
最佳答案 理想情况下,匿名类型不应暴露在使用它们的类型之外,除非您乐意使用反射与它们交谈.但是,您可以返回非通用的IEnumerable或IList.
有一种叫做“cast by example”的东西可以让anon-types恢复到你的期望,但这非常脆弱.声明一个自定义类型来表示此API上的数据会更好(而且工作量更少).那你就不是每一步都在与系统作斗争.