C# EFCore 3.1求和列值

C# EFCore 3.1求和列值,c#,entity-framework-core,C#,Entity Framework Core,我已经阅读了其他问题和论坛,以找到正确的解决方案,但它们在我的案例中似乎不起作用,可能是因为它们是EF的旧版本。其他答案通常说明十进制?数据=db.Products.Sum(p=>p.Cost)将工作,但我只是得到以下错误 无法转换LINQ表达式“DbSet.Sum(p=>p.Cost)” 所以我运行decimal?data=db.Products.Select(p=>p.Cost).AsEnumerable().Sum() 但是,创建一个可枚举项将返回表中的所有行,并且所需的时间比需要的时间长

我已经阅读了其他问题和论坛,以找到正确的解决方案,但它们在我的案例中似乎不起作用,可能是因为它们是EF的旧版本。其他答案通常说明
十进制?数据=db.Products.Sum(p=>p.Cost)将工作,但我只是得到以下错误

无法转换LINQ表达式“DbSet.Sum(p=>p.Cost)”

所以我运行
decimal?data=db.Products.Select(p=>p.Cost).AsEnumerable().Sum()

但是,创建一个可枚举项将返回表中的所有行,并且所需的时间比需要的时间长得多,那么执行
Select Sum(Cost)from products的正确方法是什么

已尝试此选项:
(从数据库中的产品选择产品。成本)。总和()我猜成本是标准属性?i、 e.公共十进制?Cost{get;set;}。我已经用.NETCore3.1和EF3.1.2执行了您的查询。它运行正常:))