NHibernate是否总是为所有列生成更新?
public class Person { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual string Address { get; set; } } Person p = Session.Load(1); p.Name = "New Name"; Session.Flush();//Update for all columns, but I change only Name
NHibernate或我的错误是正常的行为吗?我使用Fluent NHibernate和AutoMapping。
答案 0 :(得分:10)
这是默认行为,但只有将dynamic-update="true"
添加到<class>
映射中,才能使NH更新修改后的列。
答案 1 :(得分:-2)
NHibernate总是更新所有映射列。如果其他列没有更改,这应该没有问题,因为在更新时数据先前已从基础数据存储区中提取,因此基本上,它只将列值重置为它们自己的原始值。没问题。
如果您想覆盖此行为,则需要实施 IInterceptor 界面。