2011-06-21 122 views
1

我在ASP.NET MVC 3,設計一個項目如何在執行集合操作之前檢查查詢中的結果?

我使用此查詢在我的控制器:

int batchSize = (int)db.ProductFormulation 
     .Where(r => r.ProductID == p) 
     .Min(r => r.Quantity); 

p是由用戶輸入。

當我運行我的項目和用戶輸入值p這不存在於我的表中,然後發生錯誤。

我該如何阻止此錯誤,例如應該創建一個消息框,指出不存在您輸入的值的記錄,並且我的項目應該連續運行。

請建議我該怎麼做。提前致謝。

回答

6

你得到一個錯誤,因爲Min正在一個沒有元素的序列上操作。

您基本上在尋找MinOrDefault(),這在LINQ框架中不存在。

This answer對如何實現它有很好的實現。

或者,如果你不想做骨料操作服務器端,你可以先兌現的順序,然後進行分:

int batchSize = 0; 
var results = db.ProductFormulation.Where(r => r.ProductID == p).ToList(); 

if (results.Count > 0) 
    batchSize = results.Min(x => x.Quantity); 

顯然,如果你有很多的記錄,以上並不是真的適合,而且你用上述擴展方法更好。

+1

謝謝先生...非常感謝你... –

+0

沒有probs mate .. – RPM1984

相關問題