【问题标题】:NHibernate: SaveOrUpdate by <natural-id>NHibernate: SaveOrUpdate by <natural-id>
【发布时间】:2010-12-09 17:25:50
【问题描述】:

是否有一种简单的方法可以根据是否已经存在具有相同 &lt;natural-id /&gt; 的实体来使 NH INSERT 或 UPDATE 实体?

实体使用&lt;many-to-one cascade="save-update" /&gt; 映射到另一个(根)实体。

【问题讨论】:

    标签: nhibernate nhibernate-mapping many-to-one


    【解决方案1】:

    不是自动的。您必须从数据库中读取该自然 ID 的记录是否已经存在,然后确定是否需要进行插入或更新。这当然意味着级联不起作用。

    我在How do I Insert or Update (or overwrite) a record using NHibernate?中寻找类似的东西

    【讨论】:

    • 另一种解决方案是以实际执行 upsert 的方式编写 sql-insert。但我更喜欢一种连接 NHibernate 并强制它生成正确插入的方法。
    猜你喜欢
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    相关资源
    最近更新 更多