最初に、EF Code First で「多対多」の自己参照を定義する必要がありました。残念ながら、これは Breeze ではサポートされていません。つまり、ブリーズにクエリを実行するたびに、展開するデータが得られませんFriends
。ここを参照してください:自己参照多対多関係 EF コードを最初に
したがって、解決策は「多対1対多」のようです。
だからここに私のクラスがあります:
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);
実行時に、データベースは正常に生成されますが、Friends プロパティを取得するために風を照会することはまだできません。その結果、Friends プロパティを除くすべてのデータがクエリで取得されます。
誰かがこれを達成する方法を知っていますか?
ありがとう。