C# 实体框架,如何获取总和<&燃气轮机;接受一种方法?

C# 实体框架,如何获取总和<&燃气轮机;接受一种方法?,c#,sql,entity-framework,methods,func,C#,Sql,Entity Framework,Methods,Func,我有点卡住了,我不确定这是否可行。我正在实体框架中编写一个数据库,我想创建一个dataconext可以在中使用的方法 所以我想写一些像 double total = db.FlightEntries().Sum(f => f.GetTotalflightTimes()); 所以我知道EF到Sql不会理解“GetTotalflightTimes() 所以我做了这个 public static class MyFlightEntryExtentions { public static

我有点卡住了,我不确定这是否可行。我正在实体框架中编写一个数据库,我想创建一个dataconext可以在中使用的方法

所以我想写一些像

double total = db.FlightEntries().Sum(f => f.GetTotalflightTimes());
所以我知道EF到Sql不会理解“
GetTotalflightTimes()

所以我做了这个

public static class MyFlightEntryExtentions
{
    public static Expression< Func<FlightEntry, double>> GetTotalFlightTimes(this FlightEntry flightEntry)
    {
        double value
         ...........
         ..........
        return x => value;
    }
} 
公共静态类MyFlightEntryExtensions
{
公共静态表达式GetTotalFlightTimes(此FlightEntry FlightEntry)
{
双值
...........
..........
返回x=>值;
}
} 
错误4无法转换类型

'System.Linq.Expressions.Expression>' “加倍”


我知道我可能在这方面走错了方向,有人能告诉我吗!

有点不清楚您想要实现什么,但是如果您想要执行一些自定义求和逻辑,而不是简单地指向数据库中的属性/列,您需要先完成查询,然后对已经读取的对象执行求和:

db.FlightEntries().ToArray().Sum(f => f.GetTotalflightTimes());
您的扩展方法必须为此返回double


另一方面,如果你的目标是在sum下定制一些逻辑列,那么你不能有一个实体作为参数的方法,你必须只知道实体的类型,可能还有一些没有保存在实体内的相关鉴别器来构建表达式。

我试图实现的是一个计算具有的类中的某些数据将不会显示回数据库。ToArray()可以很好地用于此目的,谢谢