Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Linq选择项目在列表中的位置_Asp.net_Vb.net_Linq_Linq To Sql - Fatal编程技术网

Asp.net Linq选择项目在列表中的位置

Asp.net Linq选择项目在列表中的位置,asp.net,vb.net,linq,linq-to-sql,Asp.net,Vb.net,Linq,Linq To Sql,这应该很容易,但我做不到 我有一个列表(T)和一个linq到sql查询。我想选择查询中的特定键也要在列表中找到的所有记录 所以我这样做: Public Class myChekList Public Property custNo As String Public Property No As String End Class '''fill a list object myChkLst with items Dim query = From a In db.

这应该很容易,但我做不到

我有一个列表(T)和一个linq到sql查询。我想选择查询中的特定键也要在列表中找到的所有记录

所以我这样做:

Public Class myChekList
   Public Property custNo As String
   Public Property No As String
 End Class

 '''fill a list object myChkLst with items      

  Dim query = From a In db.MyTable.Where(myChkLst(Function(f) f.No).Contains(a.No))
但这是大错特错。有人能帮我吗


致以最诚挚的问候。

未经测试,但类似以下内容:

 Dim query = db.MyTable.Where(Function(f) myChkLst.Select(Function(c) c.No).Contains(f.No))

未经测试,但大致如下:

 Dim query = db.MyTable.Where(Function(f) myChkLst.Select(Function(c) c.No).Contains(f.No))

你可以用任何一种

 Dim query = From a In db.MyTable.Where(Function(f) myChkLst.any(function(c) c.No = f.no)))

你可以用任何一种

 Dim query = From a In db.MyTable.Where(Function(f) myChkLst.any(function(c) c.No = f.no)))

为什么它“大错特错”?为什么它“大错特错”?似乎OP需要
包含
而不是
=
@huMptyduMpty这在功能上是等价的,只是做这件事的语法更为详细。因为列表似乎也有不止一个字段,所以它应该是select/Contains或any。(我认为)使用带有“any”的示例给了我一个例外:“除了Contains()运算符之外,不能在查询运算符的LINQ to SQL实现中使用局部序列”哦,是的,对不起,我总是在从db检索列表后使用此方法,我搜索并发现您是对的。直接从表中执行此操作的唯一方法是使用Contains。似乎OP需要
Contains
而不是
=
@huMptyduMpty这在功能上是等效的,只是更详细的语法。因为列表似乎也有多个字段,所以应该是select/Contains或any。(我认为)使用带有“any”的示例给了我一个例外:“除了Contains()运算符之外,不能在查询运算符的LINQ to SQL实现中使用局部序列”哦,是的,对不起,我总是在从db检索列表后使用此方法,我搜索并发现您是对的。直接从表中执行此操作的唯一方法是使用Contains。