C# 首先更新nhibernate代码中的计算列
我首先使用nhibernate代码,我有一个计算列C# 首先更新nhibernate代码中的计算列,c#,nhibernate,calculated-columns,C#,Nhibernate,Calculated Columns,我首先使用nhibernate代码,我有一个计算列 [DatabaseGenerated(DatabaseGeneratedOption.Computed)] public virtual bool? IsInternal { get; set; } 当我尝试更新对象时,收到一个错误: 无法修改列“IsInternal”,因为它是计算列或是UNION运算符的结果。计算列不需要任何更新(在大多数情况下,不需要持久化)。当需要的时候,它总是在飞行中计算。这就是为什么会出现这个错误 根据: 计算列是
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public virtual bool? IsInternal { get; set; }
当我尝试更新对象时,收到一个错误:
无法修改列“IsInternal”,因为它是计算列或是UNION运算符的结果。计算列不需要任何更新(在大多数情况下,不需要持久化)。当需要的时候,它总是在飞行中计算。这就是为什么会出现这个错误 根据: 计算列是物理上未存储在中的虚拟列 表,除非列被标记为持久化。计算列 表达式可以使用其他列中的数据来计算 它所属的列。可以为表达式指定表达式 使用SQL Server管理在SQL Server 2016中计算列 Studio或Transact-SQL
我应该在属性映射中将update和insert设置为false,这样可以解决这个问题
public virtual bool? IsInternal { get; set; }
Map.Property(p => p.IsInternal, u =>
{
u.Update(false);
u.Insert(false);
});
这是一个计算列,为什么要手动更新它?这就像有一列返回
2+4
的值,并试图将其设置为10
,这没有意义。。。我认为它甚至不应该有一个set
方法,但我习惯于使用EF…我不会更新那个专栏。它正在自动更新。如果我没有设置,它不会在UII中显示该属性的值,我不会更新该列。它正在自动更新