2013-06-12 68 views
1

我將插入對象的列表在我的數據庫具有以下方法:沒有留存用於System.Generic.List功能NHibernate

public static void InsertObjekts(List<Objekt> objekts) 
{ 
    var session = SessionManager.CurrentSession; 
    using (var transaction = session.BeginTransaction()) 
    { 
      session.SaveOrUpdate(objekts); 
      transaction.Commit(); 
    } 
} 

但我得到的erroer no persister for System.Generic.List; 當我遍歷我的列表中插入每一個元素都是自己的,它只會在第一次迭代中進行,因爲我沒有會話。 有人可以給我一些關於這個主題的提示。

回答

4

嘗試用這種

public static void InsertObjekts(List<Objekt> objekts) 
{ 
    var session = SessionManager.CurrentSession; 
    using (var transaction = session.BeginTransaction()) 
    { 
     foreach(var obj in objekts) 
     { 
      session.SaveOrUpdate(obj); 
     } 

     transaction.Commit(); 
    } 
} 
+0

偉大的,我有嘗試這種方法,但我在foreach語句提交,但一個問題給您,做NHibernate的每一次在這種情況下數據庫的新連接? – Higune

+2

@Higune:對數據庫的唯一訪問將在事務提交上進行。 SaveOrUpdate不會訪問數據庫。 –

+0

有一個問題,更新不能正確工作,每次都會插入語句 – Higune