我使用ASP.NET MVC和Durandal / Breeze模板.
假设我有以下课程:
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"));
数据库已成功生成.
问题是当我执行一个que
和Breeze(客户端)我没有Friends属性的数据.
var query = entityQuery.from('Person')
.where('id', '==', 123)
.expand("Friends");
当执行查询时,我得到所请求的People实体,除了Friends属性之外的所有数据总是一个空数组.当我检查Json答案时,我看到数据也被传输了.甚至是Friends属性的数据.但是它们与Friends属性本身没有关联.
我的问题:如何让我的朋友财产充满价值,我该怎么做?
谢谢.
最佳答案 您必须在Person中声明外键. Breeze要求FK正确解析关联.
编辑:
我刚刚意识到你在问一个多对多的关系. (是的,我应该看过帖子标题……)
Breeze不支持多对多关联.
但是,您可以将两个一对多关系作为多对多关系工作. (即多对一对多)在这种情况下,您需要定义链接表/实体和外键,如前所述. (见http://www.breezejs.com/documentation/navigation-properties)