配置Fluent NHibernate映射只允许INSERT?

bak*_*san 9 nhibernate fluent-nhibernate

我正在将一个项目从SubSonic转移到NHibernate,我正在使用Fluent NHibernate来执行我们的所有映射.我们的数据库架构非常简单,我们的大部分案例到目前为止都可以通过不同的博客文章和可用的示例代码得到很好的说明.

然而,我无法弄清楚的一件事是能够映射列,以便只允许在数据的初始INSERT上设置其值.它是我们的应用层上的生成值,一旦插入,我们不希望允许它进一步更新.

我试过了明显的(但错了)

Map(x => Foo).ReadOnly()
Run Code Online (Sandbox Code Playgroud)

什么是适当的功能链来实现我追求的目标?

bak*_*san 15

经过多次实验 -

Map(u => Foo).Not.Update();
Run Code Online (Sandbox Code Playgroud)

似乎正在做我想做的事 - 但是如果有更多有经验的人插手确认我对结果的解释是准确的,我会很高兴.我不愿意将此标记为答案,并且无意中将未来的访问者误入了错误的道路.

  • 那是对的.插入和更新都默认为true,因此通过说您的属性"不可更新"意味着它仍然是可插入的.如果你只想要更新,你会做`Not.Insert()`; 如果你不想要,你会做`ReadOnly()`. (7认同)