NHibernate的Session和EF的ObjectContext是工作单元模式的实现,并建议类似的变更跟踪方法:检索一些实体,然后以某种方式修改它们,然后调用SaveChanges / SubmitChanges / Save / etc。
我不喜欢这种方法的隐含性。我不喜欢该实体修改自动意味着它将被保存。我想明确标记应该保存的实体。在NHibernate或EF中实现这种控制的最佳方法是什么?
答案 0 :(得分:1)
(注意:幸运的是我从未处理过EF;我的答案仅限于NH) 我认为你最初的假设是错误的:
自动修改实体 意味着它将被保存
那不是真的;为了坚持你所做的改变,你需要:
除非您执行上述任何操作,否则您的更改将不会被保留 就个人而言,我觉得NH让我可以完全控制进入我的数据库的内容。
here'是一篇好文章。