2009-11-06 91 views
0

我使用實體框架並使用2個多對多關係實體。當我嘗試關聯實體時,SaveChanges()出現錯誤:處理多對多實體

      Guid guid = new Guid(); 
          FileLine fl = new FileLine(); 
          guid.FileLines.Add(fl); 
          fl.Guids.Add(guid); 
          dc.FileLines.AddObject(fl); 
          dc.Guids.AddObject(guid); 
          dc.SaveChanges(); 

我是否正確添加關聯?

回答

1

您使用POCO類嗎?或標準的EF生成的類?

如果您正在使用標準的EF生成的類,則不需要在兩個方向上構建關係,該關係將自動爲您處理。

所以,如果你這樣做它應該工作:

Guid guid = new Guid(); 
FileLine fl = new FileLine(); 
guid.FileLines.Add(fl); 
// fl.Guids.Add(guid); -- not needed - the previous line does this automatically 
dc.FileLines.AddObject(fl); 
// dc.Guids.AddObject(guid); -- not needed - the previous line adds the guid too. 
dc.SaveChanges(); 

希望這有助於

亞歷