【发布时间】:2013-10-28 18:36:54
【问题描述】:
我正在使用带有实体框架的 Poco 生成器, 并且Poco Proxy类已经生成成功,
对于一张桌子,一切都很好,
在这里,我列出了我的课程的主要部分并解释了表之间的关系。 有 3 个表,它们有如下多对多关系:
1- 权威 2- 能力 3- 权威地图
每个权威可以有许多能力,反之亦然。 主要问题是权限类中的导航属性不起作用。
Authority 类是(只是列出的类的一部分):
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 创建,
事实上,我想使用这些导航属性来加载所有关系型记录和 为特定权限批量提供多种能力。
提前致谢。
【问题讨论】:
-
您唯一的问题描述是“授权类中的导航属性不起作用”。这不是很精确。 “不起作用”是什么意思?
-
谢谢!,allMaped 没有任何成员,我可以为每个权限加载所有相关的能力并保存特定权限的能力集合吗?
-
是的。您不需要多对多映射实体。您可以在其他两个实体之间使用集合。只需谷歌搜索多对多示例。
标签: entity-framework-4 code-generation poco t4