2016-12-26 111 views
1

我有我的模型的選擇列表下面的lambda表達式。可空布爾值在實體框架中不起作用

state變量可以是TrueFalseNULL

var list = APPEntites.Submited_Files 
        .Where(r => r.Category == id.Trim() && r.approved == (bool?) state) 
        .OrderByDescending(r => r.Date_Created) 
        .ToList(); 

我在選擇時遇到問題。如果我通過這個STATE變量與Null,它將返回0列表項,但如果我使用null,它將正確返回行。我想知道這個問題的原因。

注意:此代碼之前工作完美。

+2

你有沒有試過看到生成的SQL?問題可能是因爲可空bool –

+1

好像你試圖將bool狀態轉換成bool狀態?在Linq To Entities中,這可能是一個問題 - 因爲EF可能會試圖在結果SQL查詢中反映這一點。嘗試在Linq查詢之外進行轉換 – Vladimir

+0

我的狀態變量是bool?類型和我試圖明確和隱式轉換 – mzonerz

回答

0
var list = APPEntites.Submited_Files 
       .Where(r => r.Category == id.Trim() && r.approved == state) 
       .OrderByDescending(r => r.Date_Created) 
       .ToList(); 
+0

我不想使用額外的變量。 – mzonerz

+0

@mzonerz代碼編輯 –

0

謝謝大家。 重新啓動Visual Studio解決了這個問題。

相關問題