使用linq中的两个参数搜索数据库表记录

时间:2016-01-15 10:01:43

标签: c# asp.net-mvc linq

我在该表中有表格Product我有以下列

  • PRODUCT_ID
  • FIELD_ID

我想使用Product_IDField_ID查找特定记录因此,我编写了以下代码段

    if ((db.Product.Where(u => u.Product_ID == Product_ID))&(db.Product.Where(u => u.Field_ID == FieldID)))
     {
        // code here  
     }

但我得到了

以下错误

  

运营商'&'不能应用于类型的操作数   'IQueryable'和'bool'

3 个答案:

答案 0 :(得分:0)

您可以在Linq中使用&&添加另一个过滤条件,因此查询将如下所示:

 var LinqResult= db.Product.Where(u => u.Product_ID == Product_ID && u.Field_ID == FieldID)
 if( !LinqResult.Any() ) // Check for result contains values or not
   { 
      // your code
   }

答案 1 :(得分:0)

您的异常消息是不言自明的。请查看Where的文档(它返回IEnumerable \ IQuerable,但是你已经在if中编写了这个表达式,它需要一个布尔表达式,因此错误。)

您应该使用Any来检查是否存在Product_IDField_ID: -

db.Product.Any(u => u.Product_ID == Product_ID && u.Field_ID == FieldID)

答案 2 :(得分:0)

试试这个

var data = db.Product.Where(x => x.Product_ID == Product_ID && x.Field_ID == FieldID).ToList();
if(data.Count() > 0)
{
//Your code
}