Linq不能为Null错误在查询返回没有记录时抛出

时间:2013-06-01 05:37:09

标签: c# linq asp.net-mvc-4 null

我有以下查询:

List<Models.PricingFormula> formulasInCat = new List<Models.PricingFormula>();
productsInCat = (from x in Model.PPPVMs 
    where x.CategoryId == category.ProductCategoryId select x).ToList();

查询没有返回任何记录,我得到的错误是:

  

值不能为空。

处理此问题的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以在调用DefaultIfEmpty()方法之前使用ToList()

答案 1 :(得分:1)

如果Modelcategory为空,则会有NullReferenceExceptionValue cannot be nullArgumentNullException的消息,这意味着很可能是PPPVM为空。

List<Models.PricingFormula> productsInCat;
if (Model.PPPVMs == null)
    productsInCat = new List<Models.PricingFormula>();
else
    productsInCat = (from x in Model.PPPVMs
        where x.CategoryId == category.ProductCategoryId select x).ToList();