2013-10-20 65 views
0

我使用波科發生​​器,實體框架, 和波科Proxy類已成功生成,實體框架與波索和導航性能

對於單個表中的所有的東西去罰款,

這裏我列出了我的類的主要部分並解釋了表之間的關係。 有3表,他們有很多一對多關係如下:

1-管理局2-能力3- AuthorityAbilityMap

每個管理局可以有許多能力,反之亦然。 主要問題是Authority Class中的導航屬性不起作用。

管理局類是(類上市僅僅一部分):

public partial class Authority 
{ 
    . 
    . 
    . 
    public virtual ICollection<AuthorityAbilityMap> AuthorityAbilityMaps 
    { 
     //Poco implementation 
    } 
    private ICollection<AuthorityAbilityMap> _authorityAbilityMaps; 
    . 
    . 
    . 
} 

和能力的類:

public partial class Ability : IAuditable 
{ 
    . 
    . 
    .  
    public virtual ICollection<AuthorityAbilityMap> AuthorityAbilityMaps 
    { 
     //Poco implementation contains get and set. 
    } 
    private ICollection<AuthorityAbilityMap> _authorityAbilityMaps; 
} 

而且AuthorityAbilityMaps導航屬性:

public virtual Ability Ability 
    { 
     get { return _ability; } 
     set 
     { 
      if (!ReferenceEquals(_ability, value)) 
      { 
       var previousValue = _ability; 
       _ability = value; 
       FixupAbility(previousValue); 
      } 
     } 
    } 
    private Ability _ability; 
    public virtual Authority Authority 
    { 
     get { return _authority; } 
     set 
     { 
      if (!ReferenceEquals(_authority, value)) 
      { 
       var previousValue = _authority; 
       _authority = value; 
       FixupAuthority(previousValue); 
      } 
     } 
    } 

的源代碼針對以上課程的測試如下:

AuthorityEntities authorityContext = new AuthorityEntities(); 
       Authority authority = authorityContext.Authorities.Where(x => x.AID == 85).FirstOrDefault(); 
       ICollection<AuthorityAbilityMap> allMaped = authority.AuthorityAbilityMaps; 

allMaped包含0個成員。

正如你所知道的屬性會被波索發生器產生的導航,

其實我想用這些導航屬性加載所有關係-ED記錄和 供應多種能力散裝特定機構。

在此先感謝。

+0

您唯一的問題描述是「*權限類中的導航屬性不起作用*」。這不是很精確。 「*不起作用」是什麼意思? – Slauma

+0

Thanks!,allMaped沒有任何成員,我是否可以加載所有關係的能力,併爲特定權限保存一個能力集合? – Aria

+0

是的。您不需要多對多映射實體。您可以在兩個其他實體之間使用集合。只是谷歌的多對多的例子。 – Slauma

回答

0

我將Authority的主鍵和Ability的主鍵定義爲AuthorityAbilityMap的主鍵 ,它運行良好, 它們已被用作AuthorityAbilityMap中的外鍵。