0

次のデータベース構造があります。

ここに画像の説明を入力

私はすでにデータベースに保存Buyerしています。私は持っていbuyer idます。データベースに連絡先を保存するので、バイヤーの連絡先情報をデータベースに保存する必要があります。テーブルにも保存buyercontactする必要があります。buyercontactedmx ファイルにテーブルを追加しようとするとBuyerContact、Visual Studio 2010 で追加できません。

buyercontactテーブルに情報を保存するにはどうすればよいですか? 助けてください。

彼らは、データベース/edmxで適切な関係が維持されている場合、「連絡先」を洞窟に入れると、購入者の連絡先もデータベースに保存されると言います。インターネットで検索したところ、同様の質問が寄せられていましたが、理解できませんでした。

助けてください。保存するために特別なコードを書く必要がありますか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は理解できませんでした。CRUD などの一般的なデータベース操作には、一般的な Linq-to-SQL リポジトリを使用しました。

助けてください、ありがとう

4

1 に答える 1

0

次の代わりにこれを試してください:

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

と置換する:

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

また、作業単位のすべてのリポジトリで同じコンテキストオブジェクトを使用していると仮定します

于 2011-03-03T10:09:21.243 に答える