使用LINQ查找满足多个条件的对象

时间:2017-10-04 19:38:07

标签: c# asp.net-mvc linq

我试图在我的数据库中找到满足两个条件的对象,我在stackoverflow上搜索并发现这个one看起来与我需要的完全一样。但是,我有这段代码:

if (db.MinimumProductInfo.Find(pc => pc.ItemCode == productInfoWithNote.ItemCode && pc.Region == productInfoWithNote.Region))

我收到此错误:

  

无法将Lambda Expression转换为' object []'因为它不是   代表类型。

MinimumProductInfo是我的类,productInfoWithNote是我传递给方法的视图模型。

1 个答案:

答案 0 :(得分:1)

尝试使用FirstOrDefault,如果没有符合条件的对象,将返回null

 var myObject = db.MinimumProductInfo.FirstOrDefault(pc => pc.ItemCode == 
        productInfoWithNote.ItemCode && pc.Region == productInfoWithNote.Region);

    if(myObject != null)
    {
         // use your object here
    } 

注意Find方法返回第一个匹配元素(如果存在),如果不存在,它将返回元素类型的默认值,并且您正在使用它,就像它将返回一个布尔值。