如何在EF for MSSQL中获得隔离级别?

时间:2019-03-22 13:20:58

标签: c# sql-server linq isolation-level

我正在使用EF通过LINQ访问MS SQL数据。如何获得电流隔离级别?例如此代码:

var level = 
Database.Connection.UnderlyingTransaction.IsolationLevel.ToString();

给我错误-System.NullReferenceException: Object reference not set to an instance of an object.

据我了解-UnderlyingTransaction为null,因为我在LINQ代码中未使用任何交易。

1 个答案:

答案 0 :(得分:0)

我找不到如何使用EF属性或方法获取当前的隔离级别,因此我们可以为此使用自定义SQL查询,例如:

public class UserOptionsMsSql
{
    [Column("Set Option")]
    public string SetOption { get; set; }

    public string Value { get; set; }
}

var resultsList = 
service.GetDataContext().Database.SqlQuery<UserOptionsMsSql>
("DBCC USEROPTIONS;").ToList();

var resultLevel =  resultsList[11] == null ? "unknown":resultsList[11].Value ;

我们当然可以使用任何other custom SQL scripts ...