首先自引用多对多关系EF代码

古铜色

我使用带有Durandal / Breeze模板的ASP.NET MVC。

假设我有以下课程:

public class Person
{
    public int Id { get; set; }
    public string Firstname { get; set; }    
    public string Lastname { get; set; }
    public virtual List<Person> Friends { get; set; }
}

使用以下EF Fluent API:

modelBuilder.Entity<Person>()
            .HasMany(m => m.Friends)
            .WithMany()
            .Map(m => m.ToTable("Friends"));

数据库生成成功。

问题是当我执行查询时


与Breeze(客户端)联系,我没有该Friends物业的数据

    var query = entityQuery.from('Person')
        .where('id', '==', 123)
        .expand("Friends");

当执行查询时,我得到的结果是请求的People实体以及除Friends属性之外的所有数据始终是一个空数组。当我检查Json答案时,我看到数据也在传输。甚至是“朋友”属性的数据。但是,它们未链接到Friends属性本身。

我的问题:要使我的Friends属性充满值,我该怎么办?

谢谢。

斯贝里尼

您必须在“个人”中声明外键。微风要求FK正确解决关联。

编辑:

我刚刚意识到您正在询问多对多关系。(是的,我应该阅读该职位的标题...)Breeze不支持多对多关联。但是,您可以有两个一对多关系来充当多对多关系。(即多对一对多)在这种情况下,您将需要定义链接表/实体和外键,如前所述。(请参阅http://www.breezejs.com/documentation/navigation-properties

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章