【发布时间】:2016-08-18 12:14:49
【问题描述】:
我有一个简单的 Linq 查询:
var retVal = readModel
.GroupBy(x => x.Service)
.Select(
grp => new GroupView
{
GroupName = grp.Key,
GroupItems = grp.Sum(k => k.NumberOfItems)
}
);
retVal 是 IQueryable<GroupView>。到目前为止一切顺利,我想做的是使这个查询动态化,以便用户可以使用自定义分组策略。
这是我的第一次尝试:
var retVal = readModel
.GroupBy("Service", "it")
.Select("it.key");
这给了我一个包含组名的字符串数组。这很好,但是我想要达到的结果还很远,因为我有两个未回答的问题:
- 如何将结果转换为
GroupView模型 - 我怎样才能赚到这笔钱?
【问题讨论】:
-
GroupName的类型是什么?一个字符串?你总是按这种类型的属性分组吗?例如字符串? -
是的,在这种情况下它是一个字符串,但它也可以是一个日期,但现在一个字符串就足够了。
-
您为什么不使用您的第一个代码,而是将
x => x.Service替换为Expression<Func<Entity,string>>类型的变量,其中Entity是您的实体类型?
标签: c# linq dynamic-linq