0

我有以下数据库结构。

在此处输入图像描述

我已经保存Buyer在数据库中。我有buyer id。我必须将买家的联系信息保存在数据库中,因为我将联系人保存在数据库中我还需要保存buyercontactbuyercontact表中。当我尝试BuyerContact在 edmx 文件中添加表时,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表格中。

我已经通过这里的帖子,但O无法理解。我已将通用 Linq-to-SQL 存储库用于常见的数据库操作,例如 CRUD。

请帮忙,谢谢

4

1 回答 1

0

试试这个,而不是:

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

用。。。来代替:

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

还假设您在工作单元的所有存储库中使用相同的上下文对象

于 2011-03-03T10:09:21.243 回答