2013-07-18 84 views
0

我有一個應用程序,我使用Fluent NHibernate與SQLite數據庫交談並保存對象。當我運行下面的代碼時,所有新項目都會以空Guid(這是預期的)進入循環,但是一旦SaveOrUpdate函數運行,所有新項目都會收到相同的Guid。我添加了session.flush()以查看是否可以刷新會話並強制一個唯一的Guid ...但不是骰子。創建重複的GUID - 流利的NHibernate

任何幫助,將不勝感激!

我的映射文件

Id(x => x.Id).GeneratedBy.GuidComb().Unique(); 

守則

public void SaveItems() 
    { 
     using (ISession session = SessionProvider.OpenSession()) 
     { 
      using (var transaction = session.BeginTransaction()) 
      { 
       foreach (Item item in this.Items) 
       { 
        session.SaveOrUpdate(item); 
        session.Flush(); 
       } 

       transaction.Commit(); 
      } 
     } 
    } 
+4

是否確定那些Items集合的成員是真正獨立的對象,而不僅僅是對同一個實例的多個引用? –

+0

男人......你完全正確。就是這樣。簡單的問題,但我從來沒有注意到:) –

回答

1

本來這是一個評論,但由於它被證明是正確的,應該是一個答案,而不是:

確認Items集合的成員是真正獨立的對象,並且n不只是對同一個實例的多個引用。