2010-08-04 136 views
0

我已經成功地使用EF4與服務器自動插入行生成的GUID:自參照外鍵 - GUID - 實體框架4插入的問題

http://leedumond.com/blog/using-a-guid-as-an-entitykey-in-entity-framework-4/

現在怎麼樣,如果存在一個沒有一個執行此任務RowID(guid)和ParentRowID(guid)之間的主 - 外鍵約束?我會設置什麼.ParentRowID?

  NewCut = New Row With 
      { 
       .ParentRowID = .RowID 
      } 

SaveChanges每次都會拋出一個合適的值。

事實上,主鍵是一個GUID實際上是不相關的,因爲我試圖使用標準的自動生成的整數相同的測試沒有成功。

回答

0

該解決方案與您發佈的解決方案一樣簡單。
只需在代碼中創建父代和子代實體,請不要設置實體密鑰,也不要忘記爲所有服務器生成的Guid列設置StoreGeneratedPattern。
然後執行MasterEntityInstance.Children.Add(ChildEntityInstance)或ChildEntityInstance.MasterEntity = MasTerEntityInstance並調用SaveChanges。
SaveChanges調用後,兩個guid屬性都將填充正確的Guid值,而ChildEntity.MasterEntity實體密鑰將填充必要的MasterEntity實體密鑰值。