【发布时间】:2011-06-23 11:48:40
【问题描述】:
我的所有实体都具有以下属性:
- 公共虚拟日期时间 CreatedDate {get;设置;}
- 公共虚拟字符串 CreatedBy { get;放; }
- 公共虚拟日期时间更新日期{获取;放; }
- 公共虚拟字符串 UpdatedBy { get;放; }
我已经实现了一个 EventListener(IPreUpdateEventListener、IPreInsertEventListener),这样我就可以在插入/更新我的实体之前填充这些属性。
我没有在保存之前加载我的实体,因为我的所有字段都在一个视图中(id,版本)。我唯一想避免放入隐藏字段(在我看来)是 CreatedDate 和 CreateBy。
由于我只填写这些字段一次,当第一次创建实体时,我想知道是否有办法在我更新(仅更新)我的实体时排除它们?!
谢谢。
【问题讨论】:
-
除非您使用新数据更改这些字段或强制更新所有字段,否则框架足够聪明,不会在更新查询中包含未更改的字段,请尝试分析调用并查看是否是案例
-
@K Ivanov -- 这是不正确的,默认情况下 NHibernate 会在更新中包含所有映射的属性,即使它们没有更改。您可以使用动态更新来控制此行为。
标签: asp.net nhibernate asp.net-mvc-2