我正在尝试建立双向的一对一关系。但是,我无法获得两个实体的双向设置。
例如,假设一个人有一个电话号码,一个电话号码只能与一个人关联。我会:
public class Person : Entity
{
public long PersonId { get; set; }
public virtual PhoneNumber PhoneNumber {get; set; }
}
public class PhoneNumber : Entity
{
public long PhoneNumberId { get; set; }
}
但是,通过这种重新安排,我无法获得双向设置。即我不能拥有phoneNumber.Person.
我试过的:
public class PhoneNumber : Entity
{
public long PhoneNumberId { get; set; }
[InverseProperty("PersonId")]
public virtual Person Person {get; set; }
}
当我执行以下代码时,这似乎不起作用:
var realNumber = new PhoneNumber();
var person = new Person() {PhoneNumber = realNumber};
context.SaveChanges();
这里,PhoneNumber 实体有一列 Person(设置为 NULL),而 person 有一列 PhoneNumber(有值)。