Vb.net LINQ to SQL中的多个参数
我试图将几个搜索参数传递给LINQ表达式,以检索包含其中一个搜索项的所有条目 例如:Vb.net LINQ to SQL中的多个参数,vb.net,linq,linq-to-sql,Vb.net,Linq,Linq To Sql,我试图将几个搜索参数传递给LINQ表达式,以检索包含其中一个搜索项的所有条目 例如: Dim query = From p In db.BEW_PROFIL For Each searchItem As String In searchItems Dim item As String = searchItem query = query.Where(Function(p) p.NAME = item) Next 这里的问题是我没有得到任何
Dim query = From p In db.BEW_PROFIL
For Each searchItem As String In searchItems
Dim item As String = searchItem
query = query.Where(Function(p) p.NAME = item)
Next
这里的问题是我没有得到任何结果,因为Where子句与该代码类似
... Where p.NAME = item1 AND p.NAME = item2
我需要的是参数之间的OR,但我不知道如何实现这一点
任何帮助都将不胜感激。收到了
void Main()
{
var searchItems = new string[] { "test", "past", "most", "last", "fast", "feast", "yeast", "cast" };
var query = from p in searchItems select new MyClass { Name = p };
Predicate<MyClass> whereClause = _ => false;
foreach (var item in searchItems)
{
var searchItem = item;
Predicate<MyClass> oldClause = whereClause;
whereClause = p => p.Name == searchItem || oldClause(p);
}
query = query.Where(p => whereClause(p));
query.Dump();
}
public class MyClass
{
public MyClass() { }
public string Name { get; set; }
}
我在C#中看到过类似的情况,但是带有“=>”的部分在VB.Net中不起作用。这正是我所要寻找的。谢谢。
Private Sub Main()
Dim searchItems = New String() {"test", "past", "most", "last", "fast", "feast", "yeast", "cast"}
Dim query = From p In searchItems Select New [MyClass]() With { .Name = p }
Dim whereClause As Predicate(Of [MyClass]) = Function(element) False
For Each item As String In searchItems
Dim searchItem = item
Dim oldClause As Predicate(Of [MyClass]) = whereClause
whereClause = Function(p) p.Name = searchItem OrElse oldClause(p)
Next
query = query.Where(Function(p) whereClause(p))
query.Dump()
End Sub
Public Class [MyClass]
Public Sub New()
End Sub
Public Property Name() As String
Get
Return m_Name
End Get
Set
m_Name = Value
End Set
End Property
Private m_Name As String
End Class