2011-03-03 249 views
0

我有以下數據庫結構。LINQ到實體保存

enter image description here

我已經在數據庫中保存Buyer。我有buyer id。我必須在數據庫中保存買家的聯繫信息,因爲我在數據庫中保存聯繫人,我還需要在buyercontact表中保存buyercontact。當我嘗試在edmx文件中添加BuyerContact表時,Visual Studio 2010將不允許我這樣做。

如何在buyercontact表中保存信息?請幫忙。

他們說,如果適當的關係保持在數據庫/ EDMX,buyercontact將被保存到數據庫,以及當我的洞穴「接觸」。我通過互聯網搜索,我也發現了類似的問題,但我無法理解。

請幫忙。做我必須寫一些特殊的代碼保存BuyerContact

當我寫這篇文章的代碼保存buyercontact一起接觸,我得到錯誤

不能在 插入重複鍵dbo.Buyer

Contact objContact = new Contact(); 
objContact.FirstName = firstName; 
objContact.MiddleName = middleName; 
objContact.Lastname = lastName; 
objContact.CreatedDate = DateTime.Now; 
objContact.AddressId = gAddressId;      

var buyer = _buyerRepository.GetSingle(x => x.BuyerId == BuyerID); 
objContact.Buyer = buyer; 

_contactRepository.Add(objContact); 
_contactRepository.Save() 

如果我刪除objContact.Buyer = buyer;,則聯繫人信息已成功保存,但buyercontact未保存。現在我的問題是,只要我有與買方聯繫的聯繫人,我也需要將它保存在BuyerContact表中。

我已經通過帖子here,但O無法理解。我已經使用通用數據庫操作(如CRUD)的通用Linq-to-SQL存儲庫。

請幫幫忙,謝謝

回答

0

試試這個,而不是:

objContact.Buyer = buyer; 
_contactRepository.Add(objContact); 
_contactRepository.Save() 

替換爲:

buyer.Contacts.Add(objContact); 
_buyerRepository.Save(); 

也假設你使用相同的上下文對象的所有倉庫的工作單位