我如何联合诠释?和linqpad中的int变量

时间:2018-10-19 04:14:09

标签: linq linqpad

在LinqPad中 尝试合并int时遇到以下错误?和int变量 已研究但找不到可行的解决方案。

CS1929'IQueryable <>'不包含'Union'的定义,最佳扩展方法重载'ParallelEnumerable.Union <>(ParallelQuery <>,IEnumerable <>)'需要类型为'ParallelQuery <>'的接收器

//Parent not null
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 ?
    s.CaseOwnerIdAspnet_Users.User_ID_FKDYN_User_Profile.Organization_ID_FKDYN_Organization.ID_PK
    :
    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};

parent.Union(orgs);

1 个答案:

答案 0 :(得分:0)

假设父级返回int?,而orgs返回int,那么您可以更改orgs返回int吗?通过强制转换值,例如

将其更改为

var orgs = 
from o in DYN_Organizations
join p in parent on o.Parent_ID_FK equals p.ID_PK
select new {ID_PK = (int?) o.ID_PK};

您的错误消息中还提到了ParallelQuery和IEnumerable,但我不确定是否可以在此类型之间创建联合。如果不是,那么最简单的方法是在每个查询的末尾添加.ToList(),然后在两个将起作用的列表之间创建一个并集。