简体   繁体   English

.NET 包含不工作的核心过滤器

[英].NET Core filter with contains not working

Ok so I have searched for this and have found all kinds of things that seem to be the right answer but I cannot seem to get this working.好的,所以我搜索了这个并找到了各种似乎是正确答案的东西,但我似乎无法让它工作。 I think I am close.我想我很接近。

I have gotten this code to work in my controller which I call from Datatable serverside ajax:我已经让这段代码在我的 controller 中工作,我从数据表服务器端 ajax 调用它:

 var shares = await _dataService.GetAllAgencyShares();
            if (!string.IsNullOrEmpty(sortColumn) && !string.IsNullOrEmpty(sortColumnDirection))
            {
                shares = shares.AsQueryable().OrderBy(sortColumn + " " + sortColumnDirection);
                
            }
            if (!string.IsNullOrEmpty(searchValue))
            {
                
                shares = shares.Where(m => m.FirstName == searchValue
                         || m.LastName == searchValue
                         || m.AgencyName == searchValue
                         || m.FormId.ToString() == searchValue);
                
            }
 recordsTotal = shares.Count();
            var data = shares.Skip(skip).Take(pageSize).ToList();
            var jsonData = new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = data };
            return Ok(jsonData);

The problem is I would like the search part问题是我想要搜索部分

if (!string.IsNullOrEmpty(searchValue))
{
 shares = shares.Where(m => m.FirstName == searchValue
                         || m.LastName == searchValue
                         || m.AgencyName == searchValue
                         || m.FormId.ToString() == searchValue);
}
 recordsTotal = shares.Count();
 var data = shares.Skip(skip).Take(pageSize).ToList();
 var jsonData = new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = 
 recordsTotal, data = data };
 return Ok(jsonData);

to find anything "like" searchValue.查找“类似”searchValue 的任何内容。 Currently this finds exact matches.目前这会找到完全匹配。

I have tried using Contains but I believe that to be boolean. Most things I found are using EF and use IQueryable--I am not using EF.我试过使用 Contains,但我相信它是 boolean。我发现的大多数东西都使用 EF 并使用 IQueryable——我没有使用 EF。 I have tried to cast IEnumerable as Queryable and nothing seems to work.我试图将 IEnumerable 转换为 Queryable,但似乎没有任何效果。

How exactly did you use .Contains() ?您究竟是如何使用.Contains()

It works fine if implemented like this;如果这样实现,效果很好;

shares = shares.Where(m => m.FirstName.Contains(searchValue)
                         || m.LastName.Contains(searchValue)
                         || m.AgencyName.Contains(searchValue)
                         || m.FormId.ToString().Contains(searchValue));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM