2

データベースに次の 2 つのテーブルがあります。

住所:

Street1
City
State
Zipcode

顧客:

Name
LocationAddressId (FK to Address table)
MailingAddressId (FK to address table)

このための Entity Framework モデルを生成しました。顧客オブジェクトを作成してデータのみを入力するとLocationAddressMailingAddressの 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.LocationAddressIdc.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();

オブジェクトを正しい方法で作成しているかどうかはわかりません。何が問題を引き起こしているのか、誰にも考えがありますか?

ありがとう

4

0 に答える 0