实体框架,如何获得Sum<>接受一个方法

本文关键字:方法 一个 框架 何获得 Sum 实体 | 更新日期: 2023-09-27 18:03:33

我有点卡住了,我不确定这是可能的。我在实体框架中写一个数据库,我想做一个方法,可以在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;
    }
} 

错误4无法转换类型

' System.Linq.Expressions.Expression>"双"

我知道我可能走错了路,所以有人能告诉我吗?

实体框架,如何获得Sum<>接受一个方法

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

db.FlightEntries().ToArray().Sum(f => f.GetTotalflightTimes());

你的扩展方法必须返回double;

另一方面,如果你的目标是有一些逻辑,自定义列下的总和,你不能有一个方法,有一个实体作为参数,你必须建立表达式只知道你的实体的类型,也许一些相关的鉴别符,不是保存在实体内。