Vb.net LINQ to SQL中的多个参数

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 这里的问题是我没有得到任何

我试图将几个搜索参数传递给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
这里的问题是我没有得到任何结果,因为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