0

我正在使用带有实体框架的 Poco Generator,并且 Poco Proxy 类已经成功生成,

对于一张桌子,一切都很好,

在这里,我列出了我的课程的主要部分并解释了表格之间的关系。有3个表,它们具有多对多关系,如下所示:

1- 权威 2- 能力 3- 权威能力地图

每个权威可以有许多能力,反之亦然。主要问题是权威类中的导航属性不起作用。

权威类是(只是列出的类的一部分):

 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 个成员。

如您所知,导航属性将由 Poco Generator 创建,

事实上,我想使用这些导航属性来加载所有相关记录并为特定权限批量提供多个能力。

提前致谢。

4

1 回答 1

0

我将权限的主键和能力的主键定义为权限映射的主键,并且效果很好,它们已被用作权限映射中的外键。

于 2013-11-11T07:31:50.737 回答