Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 首先更新nhibernate代码中的计算列_C#_Nhibernate_Calculated Columns - Fatal编程技术网

C# 首先更新nhibernate代码中的计算列

C# 首先更新nhibernate代码中的计算列,c#,nhibernate,calculated-columns,C#,Nhibernate,Calculated Columns,我首先使用nhibernate代码,我有一个计算列 [DatabaseGenerated(DatabaseGeneratedOption.Computed)] public virtual bool? IsInternal { get; set; } 当我尝试更新对象时,收到一个错误: 无法修改列“IsInternal”,因为它是计算列或是UNION运算符的结果。计算列不需要任何更新(在大多数情况下,不需要持久化)。当需要的时候,它总是在飞行中计算。这就是为什么会出现这个错误 根据: 计算列是

我首先使用nhibernate代码,我有一个计算列

[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中显示该属性的值,我不会更新该列。它正在自动更新