LINQ:为什么我的IQueryable.Intersect抛出异常

时间:2014-09-12 15:21:48

标签: c# mysql linq entity-framework

我有以下LINQ语句,以及现有变量IEnumerable<int> conceptIdsint companyId

from c in dbContext.stt_concept

let A = from compDict in dbContext.stt_company_dictionary
        where compDict.company_id == companyId
        select compDict.dictionary_id

let B = from c2 in dbContext.stt_concept
        where A.Contains(c2.dictionary_id)
        select c2.id

select B.Intersect(conceptIds))

但是,这会抛出异常,并显示消息“不支持指定的方法”。内部异常的TargetSite属性提到DbIntersectExpression,因此我认为使用Intersect时出现了问题。

但是,根据MSDN,源是IQueryable,参数是IEnumerable,两者都包含相同的类型(int,或者因此intellisense让我相信)。

我使用Intersect是错还是其他?

1 个答案:

答案 0 :(得分:1)

(from c in dbContext.stt_concept
join compDict in dbContext.stt_company_dictionary 
        on c.dictionary_id equals compDict.dictionary_id
where compDict.company_id == companyId
select c.id)
.Intersect(conceptIds)

这不是你想要做的吗?