我将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)
答案 0 :(得分:1)
您可以使用IQueryable<TSource>.Where
方法执行相同操作:
Dim formticket=dbContext.JobPartForm.Where((Function(f As JobPartForm) f.JobNum = ticketnum And f.FormNumber = formnum)).ToList();
第一件事是尝试永远不要从ToList
调用DbSet
扩展方法,这会将整个表加载到内存中,当你可以在服务器端过滤数据时效率非常低。