小编sad*_*kav的帖子

无法使用Session.BeginTransaction设置IsolationLevel.ReadUncommitted

我正在尝试使用下一个代码设置IsolationLevel.ReadUncommitted

public class EntityRepository : RepositoryBase<Entity>, IEntityRepository
{
...
    public void SomeFunction()
    {
        using (var transaction = Session.BeginTransaction(IsolationLevel.ReadUncommitted))
        {
            // Profiler log: set transaction isolation level read committed
            try
            {
                Session.Query<Entity>().Count();
                // Profiler log: select count(*) from dbo.Entity
                transaction.Commit();
            }
            catch
            {
                transaction.Rollback();
                throw;
            }
        }
    }
...
}
Run Code Online (Sandbox Code Playgroud)

但是我的Profiler说查询是在隔离级读取已提交的情况下执行的.

如果SomeFunction替换为

public void SomeFunction()
{
    // 1. set isolation level uncommeted
    using (var transaction = Session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        // Profiler log: set transaction isolation level read committed
        try
        {
            transaction.Commit();
        } …
Run Code Online (Sandbox Code Playgroud)

session fluent-nhibernate isolation-level

5
推荐指数
0
解决办法
709
查看次数