Linq查询列表中的FindAll()

时间:2016-03-17 14:34:03

标签: vb.net entity-framework linq linq-to-entities

我将Linq查询制作成名为“票证查询”的列表 我想搜索具有特定数据的所有记录的票证查询

我尝试使用FindAll(),但它给了我一个错误

  

参数匹配参数'match'无法转换       'VB $ AnonymousDelegate_1(Of JobPartForm,Nullable(Of Boolean))'到       '谓词(Of JobPartForm)'。

我不能直接在查询中执行findall,因为它是在一个单独的时间调用的

还有另一种方法可以实现这一目标,还是我使用find all wrong?

ticketquery = (From ticket In dbContext.JobPartForm
                       Select ticket).ToList()

Dim formticket = ticketquery.FindAll(Function(f As JobPartForm) f.JobNum = ticketnum And f.FormNumber = formnum)

1 个答案:

答案 0 :(得分:1)

您可以使用IQueryable<TSource>.Where方法执行相同操作:

Dim formticket=dbContext.JobPartForm.Where((Function(f As JobPartForm) f.JobNum = ticketnum And f.FormNumber = formnum)).ToList();

第一件事是尝试永远不要从ToList调用DbSet扩展方法,这会将整个表加载到内存中,当你可以在服务器端过滤数据时效率非常低。