起初,我需要在 EF Code First 中定义“多对多”自引用。不幸的是,Breeze 不支持此功能。我的意思是每当我查询微风时,我都没有得到我的扩展数据Friends
。见这里:自引用多对多关系EF代码优先
所以解决方案似乎是“多对多”。
所以这是我的课:
public class Person
{
public int Id { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
public virtual List<LinkedPerson> Friends { get; set; }
}
public class LinkedPerson
{
[Key, Column(Order = 0)]
public int PersonId { get; set; }
[Key, Column(Order = 1)]
public int PersonRelatedId { get; set; }
public virtual Person Person { get; set; }
public virtual Person PersonRelated { get; set; }
}
使用以下 EF Fluent API:
modelBuilder.Entity<LinkedPerson>()
.HasRequired(p => p.Person)
.WithMany()
.WillCascadeOnDelete(false);
在运行时,数据库已成功生成,但我仍然无法查询微风来检索 Friends 属性。结果,我在查询中获得了除 Friends 属性之外的所有数据。
有人知道如何实现这一目标吗?
谢谢。