我使用带有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] 删除。
我来说两句