【问题标题】:EF7 rc1: Error on insert or update of entity with a computed columnEF7 rc1:使用计算列插入或更新实体时出错
【发布时间】:2016-05-06 11:29:44
【问题描述】:

我在插入或更新具有计算列的实体时收到以下错误,该计算列根据其他表中的值从标量函数获取值。

SqlException:无法在 OUTPUT 子句中引用列“inserted.SubjectStatus”,因为列定义包含子查询或引用执行用户或系统数据访问的函数。如果一个函数不是模式绑定的,则默认情况下它会执行数据访问。考虑从列定义中删除子查询或函数,或从 OUTPUT 子句中删除列。

我的实体 (Subject) 具有属性 SubjectStatus 和属性 DatabaseGenerated(DatabaseGeneratedOption.Computed)

另外,我在DbModelBuilder 上有以下代码:

modelBuilder.Entity<Subject>()
                    .Property(e => e.SubjectStatus)
                    .HasColumnType("int")
                    .HasComputedColumnSql("dbo.SubjectStatus(Id)")
                    .ValueGeneratedOnAddOrUpdate();

我在网络上的搜索对我没有帮助。有什么解决办法吗?

【问题讨论】:

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


    【解决方案1】:

    我相信,您已经在数据库中创建了一个计算列,并为该列分配了一个函数。删除对列添加的函数并保留该列。

    ALTER FUNCTION [dbo].[LMSFN_Course_GetEnrollmentCount] (@CourseID int)
    RETURNS INT
    

    从属性中删除ValueGeneratedOnAddOrUpdate

    同样不用添加属性DatabaseGenerated(DatabaseGeneratedOption.Computed).

    【讨论】:

      猜你喜欢
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 2021-06-12
      相关资源
      最近更新 更多