Я использую некоторый бесплатный исходный код для создания сайта электронной коммерции в WebForms. Это версия Visual Basic Начало работы с веб-формами ASP.NET 4.5 и Visual Studio 2013 . Я был успешным, пока я не закодировал страницу ProductDetails.aspx.vb. Я соответственно заменил имена и свойства своих объектов, но когда я запускаю проект, я получаю эту ошибку:
Невозможно привести объект типа 'WhereEnumerableIterator 1[LethalLibrary.Book]' to type 'System.Linq.IQueryable
1 [LethalLibrary.Book]'.
Описание: Произошло необработанное исключение во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.InvalidCastException: Невозможно привести объект типа 'WhereEnumerableIterator 1[LethalLibrary.Book]' to type 'System.Linq.IQueryable
1 [LethalLibrary.Book]'.
Отличается ли Linq от VS2017 от 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