Ошибка Lambda SQL при попытке получить один столбец

#lambda #linq-to-entities

#лямбда #linq-to-entities

Вопрос:

 Dim alist
    Using db As New Entities
 alist = From v In db.VideoUrls.Where(Function(v) v.CausedError = 0 And v.BeenDownloaded = 0) Select v.FileUrl.Take(Tb_Files2Download.Text)
        End Using
  

Я намерен вернуть только список URL-адресов (v.fileURL) для заданных критериев. Я могу извлечь весь объект целиком, но мне нужно вернуть только один столбец fileURL.

Ошибка в результатах запроса: ‘DirectCast(список, System.Data.Entity.Инфраструктура.DbQuery (системы.Коллекции.Общий.IEnumerable(из символа))).Sql ‘выдал исключение типа ‘System.Исключение NotSupportedException’

Ответ №1:

Спасибо linqpad за более подробное сообщение об ошибке.. Я пытался применить оператор take() к неправильной части последовательности, которую должен был прочитать код.

 (From v In VideoUrls.Where(Function(v) v.CausedError = 0 And v.BeenDownloaded = 0)Select v.FileUrl).take(10)
  

Кажется странным начинать оператор с paren, но при прочих равных условиях…
Надеюсь, это может помочь кому-то еще.