首先在nhibernate代码中更新计算列

时间:2015-12-14 21:29:19

标签: c# nhibernate calculated-columns

我首先使用nhibernate代码并且我有一个计算列。

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public virtual bool? IsInternal { get; set; }

当我尝试更新我的对象时,收到错误消息: 专栏" IsInternal"无法修改,因为它是计算列或是UNION运算符的结果。

2 个答案:

答案 0 :(得分:1)

计算列不需要任何更新(在大多数情况下,不会保留)。它总是在需要时随时计算。这就是您收到此错误的原因。

根据MSDN

  

计算列是未物理存储的虚拟列   表格,除非该列标记为PERSISTED 。计算列   表达式可以使用其他列中的数据来计算值   它所属的列。您可以为a指定表达式   使用SQL Server Management在SQL Server 2016中计算列   Studio或Transact-SQL。

答案 1 :(得分:1)

我应该在属性映射上设置update并插入false,它将解决这个问题

public virtual bool? IsInternal { get; set; }

Map.Property(p => p.IsInternal, u =>
            {
                u.Update(false);
                u.Insert(false);
            });