Vb.net 如果我得到一个列表(t),如何从LINQ2SQL查询中筛选出项?

Vb.net 如果我得到一个列表(t),如何从LINQ2SQL查询中筛选出项?,vb.net,linq-to-sql,Vb.net,Linq To Sql,我有一个列表(t),我得到了一个iqueryable(a) 我想从iqueryable(a的)中筛选出任何项目,其中a.id=t.myotherid 我真的不知道如何写这个查询,这里有人能帮我吗 现在我知道了 Dim listCie = (From c In db.getListCompany() _ Where Not rels.Select(Function(a) a.ChildID).Contains(c.ID) _ An

我有一个列表(t),我得到了一个iqueryable(a)

我想iqueryable(a的)中筛选出任何项目,其中a.id=t.myotherid

我真的不知道如何写这个查询,这里有人能帮我吗

现在我知道了

Dim listCie = (From c In db.getListCompany() _
                Where Not rels.Select(Function(a) a.ChildID).Contains(c.ID) _
                  And Not rels.Select(Function(a) a.ParentId).Contains(c.ID) _
                Select c)

问题是,我应该使用.Any还是有更好的方法?

我认为您想要做的事情可以通过加入来实现。您可以得到一些示例

我认为您想要做的事情可以通过连接来实现。你可以得到一些例子

Dim result = From item In queryable _
             Where Not list.Select(Function(x) x.MyOtherId).Contains(item.Id) _
             Select item
另一种方法是使用
.Intersect()
方法


另一种方法是使用
.Intersect()
方法。

否,因为列表包含具有不同属性的对象Close,但它不会仅基于列表对象的id进行比较,因此已尝试此方法。需要。为此从列表中选择.Any()。弗雷多:我不认为LINQ to SQL会转换为可枚举的。Any。它只支持客户端集合AFAIK的
.Contains
。不,已经尝试过了,因为列表包含具有不同属性的对象Close,但它不会仅基于列表对象的id进行比较。需要。为此从列表中选择.Any()。弗雷多:我不认为LINQ to SQL会转换为可枚举的。Any。它只支持
.Contains
用于客户端集合。Joel:我认为LINQ to SQL无法处理
可枚举。Any()
列表
没有
任何
方法。它是来自
系统的一个扩展方法。Linq.Enumerable
类。Joel:我认为Linq to SQL无法处理
Enumerable。Any()
列表
没有
任何
方法。它是来自
System.Linq.Enumerable
类的扩展方法。
Dim result = From item In queryable _
             Where Not list.Any(Function(t) t.MyOtherID = item.Id) _
             Select item