0

是否可以在 Linq 查询中比较两个 EntityCollection?

我试过这样:

from t in _bdd.Table
where (idList).All(id=>  t.ids.Contains(id))
                         select i).FirstOrDefault()

其中 idList 和 ids 都是 EntityCollection

但我得到了一个 NotSupportedException:

"Unable to create a constant value of type (ID) Only primitive types ('such as Int32, String, and Guid') are supported in this context"

没有办法在单个 Linq 查询中比较两个 List 吗?

4

1 回答 1

0

首先,异常是由使用本地集合 (idList) 作为 where 子句中的源引起的。相反,您应该尝试切换它,以便它出现在右侧可能在某些 LINQ 方法中。

我认为这个 where 查询会给你你想要的结果:

where t.ids.Count() == idList.Count() && t.ids.All(ids => idList.Contains(id))

“select i”部分也不清楚它选择了什么。您的代码片段中没有名为 i 的变量。

于 2012-04-23T09:38:54.937 回答