Работа с вызовом ObjectQuery Single Enumeration в SQL-запросе Linq-To-Entities - PullRequest
0 голосов
/ 29 мая 2009

Я работаю над изменением этого примера:

Using advWorksContext As New AdventureWorksEntities
    ' Call the constructor that takes a command string and ObjectContext.
    Dim productQuery1 As New ObjectQuery(Of Product)("Product", advWorksContext)

    Dim result As Product
    For Each result In productQuery1
        Console.WriteLine("Product Name: {0}", result.Name)
    Next
End Using

ObjectQuery может быть пронумерован только один раз. (Последующие попытки перечисления приводят к исключению.) Перечисление выполняется для каждого оператора. Проблема в том, что если запрос пуст, попытка For Each выдаст исключение. Но если я проверю счет:

If productQuery1.Count > 0 Then . . .

Это съедает мой единственный шанс при перечислении. Я мог бы вкладывать For Each в блок try / catch и отбрасывать пустые исключения запроса, но это ужасно. Есть ли лучшее решение?

1 Ответ

2 голосов
/ 29 мая 2009

Если вы добавите вызов ToList() в конец вашего запроса, вы сможете перечислять результаты так часто, как вам хочется.

...