Breeze不会在“多对多对多”引用上扩展我的导航属性

时间:2013-08-21 08:50:14

标签: entity-framework ef-code-first code-first breeze durandal

首先,我需要在EF Code First中定义“多对多”自引用。不幸的是,Breeze不支持这一点。我的意思是每当我查询微风时,我都没有得到Friends上展开的数据。见这里:Self-referencing many-to-many relationship EF code first

所以解决方案似乎是“多对一对多”。

所以这是我的课程:

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属性之外,我在查询中获取所有数据。

有人知道如何实现这个目标吗?

感谢。

1 个答案:

答案 0 :(得分:0)

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

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