带有子查询的实体框架核心总和引发无效操作异常

时间:2018-07-10 09:06:16

标签: c# asp.net-core entity-framework-core entity-framework-core-2.1

我有以下代码行来计算总费用。

var results = dbContext.Logs.Select(x => new
        {
            Cost = x.Rows.Sum(y => x.Rows.SelectMany(z => z.Organisation.UserRoleRates).Single(z => z.OrganisationId == y.OrganisationId && z.UserRoleId == y.Log.User.UserRole.Id).CostPerHour * y.DurationHours)
        }).ToList();

执行此操作后,将引发异常,并显示以下消息

  

InvalidOperationException:从范围”引用的类型为“ Microsoft.EntityFrameworkCore.Storage.ValueBuffer”的变量“ x”,但未定义

如果我更改为直接调用ToList()的代码(避免EF执行表达式),它将按预期工作。

var results = dbContext.Logs.ToList().Select(x => new
        {
            Cost = x.Rows.Sum(y => x.Rows.SelectMany(z => z.Organisation.UserRoleRates).Single(z => z.OrganisationId == y.OrganisationId && z.UserRoleId == y.Log.User.UserRole.Id).CostPerHour * y.DurationHours)
        }).ToList();

是否可以使表达式与Entity Framework Core一起使用?

0 个答案:

没有答案