0
我有一个返回IEnumarable类型的两个linq查询。第一个查询返回过滤的值,第二个查询返回除第二个查询之外的所有值,以便在SQL中首先查询类似于minus操作符的数据,并绑定到我的列表框。Linq除了两个IEnumarable查询
我的代码示例=>
using (ISession session = SessionManager.CurrentSession)
{
IEnumerable<RoleDefinition> roleAssigned = from groupRole in session.Query<GroupRole>()
join roleDef in session.Query<RoleDefinition>() on groupRole.RoleDefinitionId equals
roleDef.RoleDefinitionId
where groupRole.GroupId == SelectedGroupId
orderby roleDef.RoleName
select new RoleDefinition
{
RoleName = roleDef.RoleName
};
IEnumerable<RoleDefinition> roleUnassigned = from grole in session.Query<RoleDefinition>()
orderby grole.RoleName
select new RoleDefinition
{
RoleName = grole.RoleName
};
List<RoleDefinition> lRoleAss = roleAssigned.ToList();
List<RoleDefinition> lRoleUnAss = roleUnassigned.ToList();
lRoleUnAss = lRoleUnAss.Where(x => !lRoleAss.Contains(x)).ToList();
lsbAssigned.DataSource = lRoleAss;
lsbAssigned.TextField = "RoleName";
lsbAssigned.ValueField = "RoleName";
lsbAssigned.DataBind();
lsbUnAssigned.DataSource = lRoleUnAss;
lsbUnAssigned.TextField = "RoleName";
lsbUnAssigned.ValueField = "RoleName";
lsbUnAssigned.DataBind();
}
EDIT =>我固定为下面我的代码和我的函数成功工作
List<RoleDefiniton> filteredUnassign = lRoleUnAss.Where(def => !lRoleAss.Select(x => x.RoleName).Contains(def.RoleName)).ToList();
Previusly我试过除()函数,但它没有工作 – Eren 2014-09-19 09:13:13
是否现在的工作?你究竟试过了什么? – 2014-09-19 09:21:55
我试过除了你上面写的功能,但它没有工作后,我已经尝试了我的线也没有工作。 – Eren 2014-09-19 09:27:15