在 LINQ 中使用两个参数搜索数据库表记录

本文关键字:参数 两个 搜索 数据库 记录 LINQ | 更新日期: 2023-09-27 18:30:27

我在那个表中有表调用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  
     }

但我得到了

以下错误

运算符"&"不能应用于类型的操作数 "智商"和"布尔"

在 LINQ 中使用两个参数搜索数据库表记录

您的异常消息是不言自明的。请查看 Where 的文档(它返回 IEnumerable'' IQuerable,但您已将此表达式写入if中,该表达式需要布尔表达式,因此出现错误。

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

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

您可以在 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
   }

试试这个

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