如何在 EF for MSSQL 中获取隔离级别?
How to get isolation level in EF for MSSQL?
我在 LINQ 的帮助下使用 EF 访问 MS SQL 数据。我怎样才能得到当前的隔离级别?例如这段代码:
var level =
Database.Connection.UnderlyingTransaction.IsolationLevel.ToString();
给我错误 - System.NullReferenceException: Object reference not set to an instance of an object.
据我了解 - UnderlyingTransaction 为空,因为我没有在我的 LINQ 代码中使用任何事务。
我找不到如何使用 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 ...
我在 LINQ 的帮助下使用 EF 访问 MS SQL 数据。我怎样才能得到当前的隔离级别?例如这段代码:
var level =
Database.Connection.UnderlyingTransaction.IsolationLevel.ToString();
给我错误 - System.NullReferenceException: Object reference not set to an instance of an object.
据我了解 - UnderlyingTransaction 为空,因为我没有在我的 LINQ 代码中使用任何事务。
我找不到如何使用 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 ...