我使用Fluent NHibernate从数据库中获取数据。
public class OfferMap : ClassMap<tOffer>
{
public OfferMap()
{
Table("tOffer");
Id(m => m.Id, "OfferId");
Map(m => m.UserId);
Map(m => m.AtPremisesId, "Location");
Map(m => m.RegNo);
Map(m => m.ReceiveDate);
Map(m => m.HasTypeApproval, "TypeApproval");
Map(m => m.Email, "OperatorEMail");
Map(m => m.Fax, "OperatorFax");
Map(m => m.Phone, "OperatorTelephone");
}
}
我有一个从数据库接收更新的工具。
问题是,当工具启动时,它只会收到第一次更新。
例如:我在网页上将ReceiveDate
更改为 6月5日。工具和休眠正常。我再次在网页上将ReceiveDate
更改为 8月5日。流利的NHibernate收到 6月6日。
据我所知,Hibernate获得了第一个价值,并且不想接受不由他做出的改变。
我该如何防止这种情况?
答案 0 :(得分:1)
除非NHibernate知道更改(通过NHibernate会话进行的更改),否则唯一的方法是使用显式调用 .Refresh(myObject)
:
...可以使用
Refresh()
方法随时重新加载对象及其所有集合。当数据库触发器用于初始化对象的某些属性时,这很有用......
这样我们就可以获得具有所有最新设置的实例:
session.Refresh(myObject);