2009-05-29 73 views
0

我正在修改this例如工作:用的ObjectQuery單枚舉挑戰LINQ到實體實體SQL

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只能進行一次enumberated。 (隨後的枚舉嘗試拋出異常。)enumberation發生在每個語句中。問題是,如果查詢是空的,嘗試For Each將引發異常。但是,如果我檢查一個計數:

If productQuery1.Count > 0 Then . . . 

這讓我在枚舉上有一次機會。我可以將For Each嵌套在try/catch塊中,並拋出空查詢異常,但這很醜陋。有更好的解決方案嗎?

回答

2

如果您將ToList()調用添加到查詢結尾,您應該能夠按照自己的喜好經常枚舉結果。

+0

你說得對。我確信我已經嘗試過,所以我沒有嘗試過。 。 。我的記憶太多了!謝謝 – Jeff 2009-05-29 14:27:12