TransactionScope issue

本文关键字:issue TransactionScope | 更新日期: 2023-09-27 18:25:06

我在DB中有id为7的映射表,字段Taex的值为"qwe"

在此代码中:

var fooObj = Foo.GetById(7);
fooObj.Taex = "abc";
using (new TransactionScope(OnDispose.Rollback))
{
    var originalFooObj = Foo.GetById(7);
    // how can i do to get real original object from database into a transaction
    bool areEquals = fooObj.Taex == originalFooObj.Taex; // are equals
    // because nhibernate gets the cached object.
}

我需要数据库原始数据到事务中,我该怎么办?

TransactionScope issue

NHibernate有Refresh方法。您可以使用它来强制NH从DB 重新加载实体

你不是已经有了吗:

var fooObj = Foo.GetById(7);
var tempTaex = fooObj.Taex; //**get the original value
fooObj.Taex = "abc";
using (new TransactionScope(OnDispose.Rollback))
{
    var originalFooObj = Foo.GetById(7);
    // how can i do to get real original object from database into a transaction
    bool areEquals = fooObj.Taex == tempTaex; //**use it
    // because nhibernate gets the cached object.
}