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