【问题标题】:configure Fluent NHibernate mapping to allow INSERT only?配置 Fluent NHibernate 映射以仅允许 INSERT?
【发布时间】:2010-02-19 12:26:40
【问题描述】:

我正在将一个项目从 SubSonic 转移到 NHibernate,并使用 Fluent NHibernate 来执行我们所有的映射。我们的 db 模式非常简单,到目前为止,我们的大多数案例似乎都可以通过不同的博客文章和可用的示例代码得到很好的说明。

但是,我无法弄清楚的一件事是映射列的能力,以便仅允许在数据的初始 INSERT 上设置其值。它是在我们的应用层生成的值,一旦插入,我们就不想让它被进一步更新。

我尝试了明显的(但错误的)

Map(x => Foo).ReadOnly()

什么是合适的功能链来完成我所追求的?

【问题讨论】:

    标签: nhibernate fluent-nhibernate


    【解决方案1】:

    经过多次试验——

    Map(u => Foo).Not.Update();
    

    似乎在做我想做的事——但如果有更多经验丰富的人来确认我对结果的解释是准确的,我会很高兴。我不想将此标记为答案,并无意中将未来的访问者引向错误的道路。

    【讨论】:

    • 没错。 Insert 和 Update 都默认为 true,因此说您的属性“不可更新”意味着它仍然是可插入的。如果你只想更新,你会做Not.Insert();如果你不想,你会做ReadOnly()
    • 如果我尝试更新该属性会发生什么?我假设会抛出一个异常,但我已经做了一些测试,即使我将它设置为 .Not.Update(),它也会愉快地更新。我错过了什么?
    猜你喜欢
    • 1970-01-01
    • 2011-04-10
    • 2011-05-05
    • 1970-01-01
    • 2011-06-18
    • 2012-04-03
    • 2012-10-19
    • 2013-01-07
    • 2013-04-04
    相关资源
    最近更新 更多