我的 Linq 语句出错。现在的问题是我在一个使用自定义构建的数据层的项目中,所以我不知道我是在创建错误的 Linq 语句还是数据层无法处理它。
所以这是声明:
IQueryable<Affiliate> temp;
Func<RolePersonRole, bool> func;
if (roleMustBePrimary)
{
func = role => role.RolePersonRoleIsPrimary.Value == true;
}
else
{
func = role => role.RoleId == role.RoleId;
}
temp = (from affiliate in DataFacade.Instance().Tables(SessionTicket).Affiliates()
join role in DataFacade.Instance().Tables(SessionTicket).RolePersonRoles().Where(func) on affiliate.PersonId
equals role.PersonId
where role.RoleId == roleId
&& affiliate.AffiliateAssuranceLevel == assuranceLevelEnum
select affiliate);
意思是如果 boolroleMustBePrimary
为真,则应添加 where 语句,如果为假,则不应添加(因此使用role => role.RoleId == role.RoleId
)。
我得到的错误是:
'System.Collections.Generic.IEnumerable`1[SkillsNG.Modules.RolePersons.Entities.RolePersonRole]' 类型的表达式不是序列