如何在linq c#上使用sql中like

i5desfxk  于 2022-12-06  发布在  C#
关注(0)|答案(3)|浏览(187)

这不起作用

string[] DATE_Group = { "2020", "2021" }; //changing values
var query = _context.c10
            .Where(u => DATE_Group.Any(s => u.ON_DATE.Contains(s)))
            .ToList()
            .Select(u => new
            {
                User_NumberID = u.User_NumberID.ToString(),
            }).ToList();

我使用这个u.ON_DATE.Contains("2020"),并且只工作一个值而不是列表或数组
在sql SELECT * from C10 where ON_DATE like '%2020%' or ON_DATE like '%2021%'和ON_DATE列中,内容如下所示1-3-2023 1-1-2021 5-1-2020
使用enter image description here时出现此错误

4uqofj5v

4uqofj5v1#

使用下面的代码作为linq where语句。

var myVar=context.Students.where(x=>x.Name.Contains("John")).SingleOrDefault();
gajydyqb

gajydyqb2#

我认为这是获取数据的更好方法:

var from = new DateTime(2020,1,1);
var to   = new DateTime(2022,1,1);
var query = _context.c10
            .Where(u => u.ON_DATE > from && u.ON_DATE < to )
            ...
uqjltbpv

uqjltbpv3#

EF Core无法将Any与本地集合一起使用(有一个小例外),仅支持Contains
我建议使用FilterByItems函数,并在查询中使用:

string[] DATE_Group = { "2020", "2021" }; //changing values

var query = _context.c10
    .FilterByItems(DATE_Group, (u, s) => u.ON_DATE.Contains(s), true)
    .Select(u => new
    {
        User_NumberID = u.User_NumberID.ToString()
    })
    .ToList();

相关问题