使用nHibernate,如何读取未提交的?

时间:2009-06-01 21:01:56

标签: nhibernate

使用nhibernate,如何将事务级别设置为uncommitted读取?

使用SQL,我通常在存储过程开始时设置事务级别或使用内联(NOLOCK)。

3 个答案:

答案 0 :(得分:3)

According to the documentation,您可以通过hibernate.connection.isolation进行设置。如果您需要更精确的控制,请查看NHibernate的pessimistic locking机制。

答案 1 :(得分:3)

您可以使用以下步骤将nolock内联SQL与nhibernate一起使用:

  1. 使用以下

    创建HBM文件
    <sql-query name="PersonList">
    return alias="person"  class="Person">
    SELECT * FROM Person WITH(nolock) 
    <sql-query>
    
  2. 创建nhibernate会话时使用AddXmlFile(hbm file path)

  3. 使用DBSession.GetNamedQuery("PersonList")获取人员列表。

答案 2 :(得分:0)

这对我有用(特定于SQL服务器)

  IDbCommand NHCommand;

  NHCommand= NHSession.Connection.CreateCommand();

  NHCommand.CommandText= "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED";

  NHCommand.ExecuteNonQuery();

与RDBMS direclty交谈。