我正在将 Linq to Sql 与 Predicate Builder 一起使用,并试图优化从数据库中检索到的信息量。我想只选择某些字段以在网格视图中显示它们。当我只选择我想要的内容时,我添加的搜索参数(见下文)不起作用,PredicateBuilder 也不起作用。这就是我目前正在做的事情(有效,但得到的信息太多了)
' Initial Setup '
Dim db As New MyDataContext()
Dim results = From p In db.Products _
Select p
' Search '
If (testCase) Then
results = results.Where(Function(p) p.SomeAttribute = 123)
End If
如果我将其更改为仅选择我需要的内容,如下所示:
Dim results = From p In db.Products _
Select p.Name, p.SomethingElse
然后我注意到如果选择了信息(即我选择 p.SomeAttribute),那么我可以在该属性上搜索(添加 where 子句),但如果没有,我不能。并且使用谓词构建器,它仅在我选择整个项目(即选择 p)时才有效。所有这一切都应该做的是创建不必选择要搜索的属性的 SQL 语句。我怎样才能让它工作并只选择我需要的东西,但是搜索任何东西并保持prediate builder工作?非常感谢任何帮助!谢谢