使用nhibernate,如何将事务级别设置为uncommitted读取?
使用SQL,我通常在存储过程开始时设置事务级别或使用内联(NOLOCK)。
答案 0 :(得分:3)
According to the documentation,您可以通过hibernate.connection.isolation
进行设置。如果您需要更精确的控制,请查看NHibernate的pessimistic locking机制。
答案 1 :(得分:3)
您可以使用以下步骤将nolock
内联SQL与nhibernate一起使用:
使用以下
创建HBM文件<sql-query name="PersonList">
return alias="person" class="Person">
SELECT * FROM Person WITH(nolock)
<sql-query>
创建nhibernate会话时使用AddXmlFile(hbm file path)
。
使用DBSession.GetNamedQuery("PersonList")
获取人员列表。
答案 2 :(得分:0)
这对我有用(特定于SQL服务器)
IDbCommand NHCommand;
NHCommand= NHSession.Connection.CreateCommand();
NHCommand.CommandText= "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED";
NHCommand.ExecuteNonQuery();
与RDBMS direclty交谈。