asp.net - 无法将“WhereEnumerableIterator`1[Object]”类型的对象转换为“System.Linq.IQueryable`1[Object]”类型
问题描述
我正在使用一些免费的源代码在 WebForms 中创建一个电子商务网站。它是ASP.NET 4.5 Web 窗体和 Visual Studio 2013 入门的 Visual Basic 版本。在编写 ProductDetails.aspx.vb 页面之前,我一直是成功的。我相应地替换了我的对象名称和属性,但是当我运行项目时,我收到了这个错误:
无法转换类型为“WhereEnumerableIterator 1[LethalLibrary.Book]' to type 'System.Linq.IQueryable
1 [LethalLibrary.Book]”的对象。
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息: System.InvalidCastException:无法转换类型为“WhereEnumerableIterator 1[LethalLibrary.Book]' to type 'System.Linq.IQueryable
1[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 的论坛上找到了答案。添加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
推荐阅读
- selenium - 自动将文本输入到以角度定义可编辑字段的字段中,我的测试框架是 selenium webdriverio
- python - 交叉验证会给出样本外准确度的有偏估计吗?
- jsf - Web 应用程序服务器端的负载平衡是否会生成 JSF 的单例 AppScoped bean 的多个实例?
- javascript - 从旋转元素中找到元素的实际高度和宽度
- ios - getUserMedia 在 IOS 12.3 上未定义
- python - 如何过滤数据框中仅包含特定重复字符的元素
- hibernate - 使用 Hibernate Criteria Api 请求多个模式
- java - Spring Boot 2:在控制器中获取 html 输出
- java - 如何排除 x.class 被编译到我的 jar 文件中?
- google-app-engine - 如何设置 Visual Code 以调试使用 dev_appserver.py 的 GAE 应用程序