2009-11-19 61 views
0

這應該很簡單,但它非常令人沮喪。LinqToSql +調用.Count僅在生產中失敗

我有一個LinqToSql如下,它在發展的罰款,但是當我將代碼移植到生產它.Count中炸燬


更新,解決了這個問題,但不明白爲什麼我不得不... 請解釋一下,如果你可以,我很困惑。下面的代碼在開發精,爲了得到它在生產中我不得不不要使用遞延打字工作,所以...... 代替:

Dim val = From a In _configuration Where a.ItemKey = "Val5" Select 

我不得不使用:

Dim val As IEnumerable(Of MyAssembly.Configuration) _ 
    = From a In _configuration Where a.ItemKey = "Val5" Select a 

爲什麼世界上第一種方式會在我的開發服務器上工作,而不是在生產服務器上?他們都有3.5 SP1等..


Dim val = From a In _configuration Where a.ItemKey = "Val5" Select a 
    Dim valExists As Boolean = False 
    If val.Count > 0 Then 
     valExists = True 
    End If 

我得到的錯誤是: System.MissingMemberException:公共部件類型'伯爵 'WhereSelectListIterator(中配置,配置)' 未找到。

這對我來說絕對沒有意義。 val的類型是IEnumerable,那麼爲什麼我無法調用.Count呢?

感謝:-)

回答

1

嘗試

val.AsEnumerable.Count 

0

只是一種預感,嘗試檢查如果val因某種原因而返回null:

If val IsNot Nothing AndAlso val.Count > 0 Then