我的数据库中有以下 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.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();
我不确定我是否以正确的方式创建对象。有没有人对导致问题的原因有任何想法?
谢谢