如何使流畅的hibernate从数据库中获取更新的值?

时间:2015-05-05 06:49:42

标签: c# hibernate nhibernate fluent-nhibernate

我使用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获得了第一个价值,并且不想接受不由他做出的改变。

我该如何防止这种情况?

1 个答案:

答案 0 :(得分:1)

除非NHibernate知道更改(通过NHibernate会话进行的更改),否则唯一的方法是使用显式调用 .Refresh(myObject)

9.2. Loading an object

  

...可以使用 Refresh() 方法随时重新加载对象及其所有集合。当数据库触发器用于初始化对象的某些属性时,这很有用......

这样我们就可以获得具有所有最新设置的实例:

session.Refresh(myObject);