2009-10-12 72 views
4

我有,做一個簡單的方法...NHibernate的CreateSQLQuery交易問題

Session.CreateSQLQuery(syntax).List<T>(); 

的問題是,當我執行這項針對報名的鏈接服務器連接我碰到下面的錯誤的存儲過程...

該操作無法執行,因爲鏈接服務器「MyLinkedServer」的OLE DB提供程序「MSDASQL」無法啓動分佈式事務。

我的問題是;我怎麼能告訴NHibernate我不想使用一個事務..?

謝謝..!

+0

這是不是NHibernate的,任何/所有查詢都在一個事務中運行要麼你明確聲明它或供應商創建它隱含 – Jaguar 2011-12-16 12:16:46

回答

2

我經常這樣做:

session = PersistenceManager.GetCurrentSession();     
IList<T> lst; 
using (var trans = session.BeginTransaction()) 
{ 
    IQuery sql = session.CreateSQLQuery(syntax); 
    lst = slq.List<T>(); 
    trans.Commit(); 
}