Breeze 不会在引用"Many-to-one-to-many"上扩展我的导航属性



起初,我需要在EF Code first中定义一个"多对多"的自引用。不幸的是,Breeze并不支持这一点。我的意思是,每当我查询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);

在运行时,数据库生成成功,但我仍然无法查询breeze来检索Friends属性。结果,除了Friends属性之外,我在查询中得到了所有数据。

有人知道如何做到这一点吗?

谢谢。

您尚未指定关系的集合属性。使用以下流畅的映射。

modelBuilder.Entity<LinkedPerson>()
            .HasRequired(p => p.Person)
            .WithMany(p => p.Friends)
            .WillCascadeOnDelete(false);

最新更新