Entity framework 4 具有Poco和导航属性的实体框架

Entity framework 4 具有Poco和导航属性的实体框架,entity-framework-4,code-generation,poco,t4,Entity Framework 4,Code Generation,Poco,T4,我正在使用实体框架的Poco生成器, 和Poco代理类已成功生成 对于一张桌子,一切都很好 在这里,我列出了我的课程的主要部分,并解释了表之间的关系。 有3个表,它们具有多对多关系,如下所示: 1-权限2-能力3-权限能力映射 每个权威都有许多能力,反之亦然。 主要问题是Authority类中的导航属性不起作用 权限类是(只是列出的类的一部分): 针对上述类测试的源代码如下所示: AuthorityEntities authorityContext = new AuthorityEntities

我正在使用实体框架的Poco生成器, 和Poco代理类已成功生成

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

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

1-权限2-能力3-权限能力映射

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

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

针对上述类测试的源代码如下所示:

AuthorityEntities authorityContext = new AuthorityEntities();
                Authority authority = authorityContext.Authorities.Where(x => x.AID == 85).FirstOrDefault();
                ICollection<AuthorityAbilityMap> allMaped = authority.AuthorityAbilityMaps;
AuthorityEntities authorityContext=新建AuthorityEntities();
Authority Authority=authorityContext.Authorities.Where(x=>x.AID==85.FirstOrDefault();
ICollection allMaped=authority.AuthorityAbilityMaps;
allMaped包含0个成员

正如您所知,导航属性将由Poco生成器创建

事实上,我想使用这些导航属性来加载所有关联的记录和 为特定机构批量提供多种能力


提前感谢。

我将权限的主键和能力的主键定义为主键 对于AuthorityAbilityMap,它运行良好,
它们已在AuthorityAbilityMap中用作外键

您唯一的问题描述是“Authority类中的导航属性不起作用”。这不太准确。“不行”是什么意思?谢谢!,allMaped没有任何成员,我是否可以加载每个权限的所有关系ed能力并保存特定权限的能力集合?是。您不需要多对多映射实体。您可以在其他两个实体之间使用集合。只需谷歌搜索多对多的例子。
 public partial class Ability : IAuditable
{
   .
   .
   .      
    public virtual ICollection<AuthorityAbilityMap> AuthorityAbilityMaps
    {
        //Poco implementation contains get and set.
    }
    private ICollection<AuthorityAbilityMap> _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;