データベースに次の 2 つのテーブルがあります。
住所:
Street1
City
State
Zipcode
顧客:
Name
LocationAddressId (FK to Address table)
MailingAddressId (FK to address table)
このための Entity Framework モデルを生成しました。顧客オブジェクトを作成してデータのみを入力するとLocationAddress
、MailingAddress
の ID (住所テーブルの主キー) が生成されLocationAddress
ます。この ID が割り当てられLocationAddressId
、同じ ID が割り当てられてMailingAddressId
います。
ここに私が持っているコードがあります:
Customer c = new Customer();
var a = new Address
{
Street1 = "Test",
City = "test",
Zip = "43343",
Country = "sdf",
};
c.Address = a;
c.Name = "Test Customer";
ctx.Customers.AddObject(c);
ctx.SaveChanges();
変更を保存した後、郵送先住所に何も割り当てていなくc.LocationAddressId
てc.MailingAddressId
も同じです。
問題#2:
私のコードでは、MailingAddress
同様に作成しようとすると、エラーが発生します
「'TestModel.FK_Customer_LocationAddress_Address' リレーションシップのプリンシパル エンドを特定できません。追加された複数のエンティティが同じ主キーを持つ可能性があります。
これは私のコードです:
Customer c = new Customer();
var a = new Address
{
Street1 = "Test",
City = "test",
Zip = "43343",
Country = "sdf",
};
c.Address = a;
var b = new Address
{
Street1 = "Test mailing addr",
City = "test",
Zip = "43343",
Country = "sdf",
};
c.Address1 = b;
c.Name = "Test Customer";
ctx.Customers.AddObject(c);
ctx.SaveChanges();
オブジェクトを正しい方法で作成しているかどうかはわかりません。何が問題を引き起こしているのか、誰にも考えがありますか?
ありがとう