【问题标题】:Unable to cast object of type 'WhereEnumerableIterator`1[Object]' to type 'System.Linq.IQueryable`1[Object]'无法将“WhereEnumerableIterator`1[Object]”类型的对象转换为“System.Linq.IQueryable`1[Object]”类型
【发布时间】:2018-10-16 16:02:36
【问题描述】:

我正在使用一些免费的源代码在 WebForms 中创建一个电子商务网站。它是Getting Started with ASP.NET 4.5 Web Forms and Visual Studio 2013 的Visual Basic 版本。在编写 ProductDetails.aspx.vb 页面之前,我一直是成功的。我相应地替换了我的对象名称和属性,但是当我运行项目时,我得到了这个错误:

无法转换类型为“WhereEnumerableIterator1[LethalLibrary.Book]' to type 'System.Linq.IQueryable1[LethalLibrary.Book]”的对象。

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息: System.InvalidCastException:无法转换类型为“WhereEnumerableIterator1[LethalLibrary.Book]' to type 'System.Linq.IQueryable1[LethalLibrary.Book]”的对象。

VS2017 的 Linq 与 VS2013 有什么不同吗?我该如何解决这个问题?

Public Function GetBook(<QueryString("BookID")> BookId As Nullable(Of Integer)) As IQueryable(Of Book)
    Dim db = New BookContext()
    Dim query As IQueryable(Of Book) = db.Books
    If BookId.HasValue AndAlso BookId > 0 Then
        query = query.Where(CType(Function(p) p.BookID = BookId, Func(Of Book, Boolean)))
    ElseIf Not String.IsNullOrEmpty(BookTitle) Then
        query = query.Where(Function(p) String.Compare(p.BookTitle, BookTitle) = 0)
    Else
        query = Nothing
    End If
    Return query
End Function

【问题讨论】:

    标签: asp.net vb.net linq webforms


    【解决方案1】:

    我在 ASP.NET 的论坛上找到了答案。将AsQueryable() 添加到我的query 变量中修复了它!

    Public Function GetBook(BookId As Nullable(Of Integer)) As IQueryable(Of Book)
        Dim BookTitle As String = "aaaa"
        Dim db = New ApplicationDbContext()
        Dim query As IQueryable(Of Book) = db.Books
        If BookId.HasValue AndAlso BookId > 0 Then
            query = (query.Where(CType(Function(p) p.BookId = BookId, Func(Of Book, Boolean)))).AsQueryable()
        ElseIf Not String.IsNullOrEmpty(BookTitle) Then
            query = (query.Where(Function(p) String.Compare(p.BookTitle, BookTitle) = 0)).AsQueryable()
        Else
            query = Nothing
        End If
        Return query
    End Function
    

    【讨论】:

      猜你喜欢
      • 2015-02-11
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 2016-02-07
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多