Я работаю над изменением этого примера:
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 и отбрасывать пустые исключения запроса, но это ужасно. Есть ли лучшее решение?