Pergunta

Eu estou trabalhando na modificação este exemplo :

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

Um ObjectQuery pode ser enumberated apenas uma vez. (As tentativas subsequentes na enumeração accionar uma excepção.) O enumberation ocorre na para cada instrução. O problema é que se a consulta está vazia tentar uma para cada lançará uma exceção. Mas se eu verificar se há uma contagem:

If productQuery1.Count > 0 Then . . .

Que come a minha única chance de enumeração. Eu poderia ninho para cada em um bloco try / catch e jogar fora as exceções consulta vazia, mas isso é feio. Existe uma solução melhor?

Foi útil?

Solução

Se você adicionar uma chamada ToList() até o fim da sua consulta, você deve ser capaz de enumerar os resultados como frequentemente como você gosta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top