我正在使用带有实体框架的Poco Generator, 并且Poco Proxy类已成功生成,
对于单个表格,所有事情都很顺利,
在这里,我列出了我的课程的主要部分,并解释了表格之间的关系。 有3个表,它们具有多对多关系,如下所示:
1-权限2-能力3- AuthorityAbilityMap
每个权威都可以有很多能力和反对。 主要问题是Authority类中的Navigation属性不起作用。
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创建,
实际上我想使用这些导航属性来加载所有关系记录和 为特定的权威机构提供批量的多种能力。
提前致谢。
答案 0 :(得分:0)
我将Authority的主键和Ability的主键定义为主键 对于AuthorityAbilityMap,它运作良好, 它们已被用作AuthorityAbilityMap中的外键。