这可能非常简单,我最后会脸红......
class Person {
public Guid Id {get;set;}
public string Name {get;set;}
public Person Manager {get;set;} // The person may or may not have a manager.
public Guid? ManagerId {get;set;} // I need the Guid if the Person has a manager
}
我试过了
modelBuilder.Entity<Person>().HasOptional(e=>e.Manager).WithMany().HasForeignKey(e=>ManagerId)
但那没有任何好处。
答案 0 :(得分:0)
您是否尝试过没有任何自定义关系映射?我原本以为ef会自动为你做它的魔力。
如果没有将您的课程更改为folows并且您不需要配置任何关系。它可能是ef代码首先不喜欢guids
class Person {
public int Id {get;set;}
public string Name {get;set;}
public Person Manager {get;set;}
public int? ManagerId {get;set;}
}
您是否有使用guid的特定原因而不是int?
答案 1 :(得分:0)
您可以尝试使用数据注释来帮助EF推断关系。现在无法测试,所以它可能不会工作,但是像:
class Person {
public Guid Id {get;set;}
public string Name {get;set;}
[ForeignKey("Id")]
public virtual Person Manager {get;set;}
public Guid? ManagerId {get;set;}
}