query中的子查询包含查询元素linq不工作
本文关键字:查询 linq 工作 元素 包含 query | 更新日期: 2023-09-27 18:05:41
大家好
我有两个Linq查询如下
var sub_query = from x in db.table
where
x.item1 == "abcd"
select new
{
x.Item2 //is a string
}
var query = from y in db2.table
where
sub_query.ToList().Contains(new {y.item2}) //error here
select new { y.element }
这个不能用
它认不出y & &;抛出匿名错误y.item2
是一个字符串我也尝试直接在query
内sub_query.Contains
,但同样的错误
Edit (error given)
最佳重载方法匹配"System.Collections.Generic.List.Contains (AnonymousType # 1)有一些无效参数
PS:当我构建解决方案时,错误消失&例如,去掉逗号(;)&输入一个新的,错误返回
您创建的匿名对象实际上并不相等。请看下面的代码:
string myString = "foo";
string myOtherString = "foo";
var x = new { myString };
var y = new { myOtherString };
x.Equals(y)将返回false,对Contains的调用也将返回false。
如果您直接选择字符串而不是将其包装在匿名对象中,则应该可以工作。例如:
select x.Item2
和
sub_query.ToList().Contains(y.item2)