首页 > 解决方案 > 实体框架 6:选择属性总和作为字符串提供

问题描述

我在 Entity Framework 6 中有一个泛型类型的查询和一个属性名称列表,以字符串形式提供:

IQueryable<T> query
string[] propNames

我确保 propNames 中的属性是 T 的实际属性,并且是 Int32 类型(SQL Server 中的 int 列)。

我需要对属性求和,所以我正在寻找一种动态构建以下查询的方法:

query.GroupBy(x => true).Select(x =>
    SumOfProp1 = x.Sum(y => y.Prop1),
    SumOfProp2 = x.Sum(y => y.Prop2),
    ...
);

其中 Prop1、Prop2 等是 propNames 中的属性。我希望它转到 SQL Server,而不是先加载对象然后对它们求和,因为表中有很多记录。

看起来是一个很好的起点,但只对一个字段求​​和,我需要在同一个调用中对多个字段求和。

这可以实现吗?如何实现?

标签: sumentity-framework-6linq-to-entities

解决方案


推荐阅读