【发布时间】:2018-10-20 17:04:50
【问题描述】:
仍在学习 Linq 的细微差别。 进行了研究,但找不到解决我认为很容易解决的方法。
编辑:这里要求的是完整的代码块:
//Jboyd pull back all relative orgs
var parent =
from s in Students
where s.Id==5027
select new {
ID_PK = s.CaseOwnerIdAspnet_Users.User_ID_FKDYN_User_Profile.Organization_ID_FKDYN_Organization.Parent_ID_FK == null ?
(int) s.CaseOwnerIdAspnet_Users.User_ID_FKDYN_User_Profile.Organization_ID_FKDYN_Organization.ID_PK
:
(int) s.CaseOwnerIdAspnet_Users.User_ID_FKDYN_User_Profile.Organization_ID_FKDYN_Organization.Parent_ID_FK
};
var orgs =
from o in DYN_Organizations
join p in parent on o.Parent_ID_FK equals p.ID_PK
select new {ID_PK = o.ID_PK};
var unionOrgs = parent.Union(orgs) ;
//unionOrgs 是 Orgs 的列表 //下面的查询:我需要查询一个更大的表,其中 orgs 在上面的列表中
var userProfilesQuery = from up in DYN_User_Profiles
where unionOrgs.Contains(up.Organization_ID_FK) //this is where the error occurs
select up;
错误: CS1929“IQueryable”不包含“包含”的定义,并且最佳扩展方法重载“ParallelEnumerable.Contains(ParallelQuery, int)”需要“ParallelQuery”类型的接收器
最终的目标是 unionOrgs 返回一个组织列表。然后我想为该列表中的任何组织查询一个更大的表
【问题讨论】:
-
那是因为
orgs是一个对象集合,其属性为ID_PKs。你想做什么? -
IQueryable<>继承IEnumerable<t>@gilad 表明您的 Orgs 是一个集合 -
对你的类和属性名做一些事情。这很难阅读(而且你必须一直这样做!)。