NHibernate: SaveOrUpdate by <natural-id>
Posted
技术标签:
【中文标题】NHibernate: SaveOrUpdate by <natural-id>【英文标题】: 【发布时间】:2010-12-09 17:25:50 【问题描述】:是否有一种简单的方法可以根据是否已经存在具有相同 <natural-id />
的实体来使 NH INSERT 或 UPDATE 实体?
实体使用<many-to-one cascade="save-update" />
映射到另一个(根)实体。
【问题讨论】:
【参考方案1】:不是自动的。您必须从数据库中读取该自然 ID 的记录是否已经存在,然后确定是否需要进行插入或更新。这当然意味着级联不起作用。
我在How do I Insert or Update (or overwrite) a record using NHibernate?中寻找类似的东西
【讨论】:
另一种解决方案是以实际执行 upsert 的方式编写 sql-insert。但我更喜欢一种连接 NHibernate 并强制它生成正确插入的方法。以上是关于NHibernate: SaveOrUpdate by <natural-id>的主要内容,如果未能解决你的问题,请参考以下文章
NHibernate 为新实体生成 INSERT 和 UPDATE
Hibernate中saveOrUpdate()和merge()的区别