Entity Framework Core的计算列错误:在此上下文中不允许子查询。仅允许标量表达式

时间:2019-02-08 18:39:31

标签: c# sql-server entity-framework-core

我正在尝试通过我的上下文中的modelBuilder将以下计算列添加到SQL Server表中:

modelBuilder.Entity<Employee>(ent => {
   ent
      .Property(e => e.IsChangeOrderPending)
      .HasComputedColumnSql("cast(case when exists (select * from ChangeOrder where ConsultantID = EmployeeID and CompletionDate is null) then 1 else 0 end as bit)");
});

创建迁移成功,但是当我运行update-database时,出现以下错误:

  

在这种情况下不允许子查询。仅标量表达式   被允许

我必须针对Employee表创建一个视图,并将该计算列作为视图的一部分,并通过Context中的DbQuery属性对其进行访问,但我希望它直接成为表中的计算列。

我已经将其他计算列添加到表中而没有问题,但是子查询导致了问题。这仅仅是对实体框架的限制吗?

我在项目中使用以下软件包:

  • Microsoft.ASPNetCore.Identity.EntityFrameworkCore 2.2.0
  • Microsoft.EntityFrameworkCore.SQLServer 2.2.1

0 个答案:

没有答案