2013-08-21 26 views
0

首先,我需要在EF Code First中定義「多對多」自引用。不幸的是,這不是Breeze支持的。我的意思是每當我查詢微風時,我的Friends的擴展數據都沒有。看到這裏:Self-referencing many-to-many relationship EF code firstBreeze不會在「多對一」對象引用中擴展我的導航屬性

因此,解決方案似乎是「多對一對多」。

因此,這裏是我的課:

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流利的API:

modelBuilder.Entity<LinkedPerson>() 
       .HasRequired(p => p.Person) 
       .WithMany() 
       .WillCascadeOnDelete(false); 

在運行時,成功生成的數據庫,但我仍然無法查詢微風檢索朋友的財產。因此,除了Friends屬性,我在我的查詢中獲得了所有數據。

有人有一個想法如何實現這一點?

謝謝。

回答

0

您尚未指定關係的集合屬性。使用以下流暢映射。

modelBuilder.Entity<LinkedPerson>() 
      .HasRequired(p => p.Person) 
      .WithMany(p => p.Friends) 
      .WillCascadeOnDelete(false); 
+0

非常感謝你,那就是我所需要的。 – Bronzato