如何实现 SQL where in for entity framework 6

How to implement SQL where in for entity framework 6

我正在尝试使用以下函数从 entity framework table 中过滤数据集。我遇到的问题是,当我到达 .ToList() 时,出现对​​象引用错误。如果我取出 .contains 行,查询工作正常。

Public Function List(entityModel As String, filter As BO.Filter.Import) As IList(Of BO.Import)
    ' Get import data '
    Using context = New RBEntities
        Dim result = context.import_data.Where(Function(s) s.entity_model = entityModel)
        result = ApplyFilter(result, filter)

        Return result.Select(Function(s) New BO.Import(s)).ToList()
    End Using
End Function

Private Function ApplyFilter(result As IOrderedQueryable(Of import_data), filter As BO.Filter.Import) As IOrderedQueryable(Of import_data)
        If Not filter.IDs Is Nothing AndAlso filter.IDs.Count > 0 Then
            If Not filter.IDs(0) = -1 Then
                result = result.Where(Function(w) filter.IDs.Contains(CInt(w.id)))
            End If
        End If

        If Not String.IsNullOrEmpty(filter.Term) Then
            result = result.Where(Function(w) w.data.ToLower().Contains(filter.Term.ToLower()))
        End If

        If Not filter.Status Is Nothing Then
            result = result.Where(Function(w) w.status = filter.Status)
        End If

        If filter.UserProfileID > 0 Then
            result = result.Where(Function(w) w.user_profile_id = filter.UserProfileID)
        End If

        Return result
    End Function

通过替换以下内容设法解决了问题

result = result.Where(Function(w) filter.IDs.Contains(CInt(w.id)))

result = result.Where(Function(w) filter.IDs.Any(Function(a) a = w.id))