从 nhibernate 中的 INSERT 命令中排除属性

Ris*_*skX 5 nhibernate nhibernate-mapping

我有一个具有我希望只读属性的实体 - 这意味着当我将此实体插入数据库时​​,SqlServer 将自动生成该属性的值,因此我需要 nhibernate 在执行 INSERT 命令时忽略此属性,但在选择时检索它实体。

重要提示:此属性不是ID!我不希望 NHibernate 使用生成器来初始化它,SqlServer 会自己完成。

另请注意:我使用配置映射,因此请不要使用流畅的映射解决方案。

Rad*_*ler 3

支持该功能。有两个属性:

<property name="GeneratedBySql" insert="false" update="false" />
Run Code Online (Sandbox Code Playgroud)

即使对于参考映射也可以应用相同的方法

<many-to-one name="ReferenceGeneratedBySql" insert="false" update="false" />
Run Code Online (Sandbox Code Playgroud)

如果我们想使用按代码映射,我们确实有相同的地方,请参阅:

按代码映射 - 属性 (Adam Bar)

引用的片段:

Property(x => x.Property, m =>
{
    m.Column("columnName");
    ...
    m.Update(false);
    m.Insert(false);
Run Code Online (Sandbox Code Playgroud)