2

我的数据库中有以下 2 个表:

地址

Street1
City
State
Zipcode

客户

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

我为此生成了一个实体框架模型。当我创建一个客户对象并仅填充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.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