首页 > 解决方案 > C# LINQ:'变量'x'的类型从范围''引用,但它没有定义'

问题描述

我正在尝试使用 LINQ 通过查询实现过滤器:

var ordersDetails = _repository.Get();

if (query != null)
  {
    ordersDetails = ordersDetails
      .Where(x => ordersDetails.Any(od => 
                  x.Product.Name.ToUpperInvariant().Contains(query.ToUpperInvariant()) ||                                                
                  x.Order.Customer.FirstName.ToUpperInvariant().Contains(query.ToUpperInvariant()) ||                                               
                  x.Order.Customer.LastName.ToUpperInvariant().Contains(query.ToUpperInvariant())));
   }

我得到一个错误::'OrderDetailsDto'类型的变量'x'从范围''引用,但它没有定义'

标签: c#linq

解决方案


我不知道我是否理解正确,但为什么不这样呢?

ordersDetails = ordersDetails
      .Where(x => x.Product.Name.ToUpperInvariant().Contains(query.ToUpperInvariant()) ||                                                
                  x.Order.Customer.FirstName.ToUpperInvariant().Contains(query.ToUpperInvariant()) ||                                               
                  x.Order.Customer.LastName.ToUpperInvariant().Contains(query.ToUpperInvariant())));

推荐阅读