与Linq的IQuerable在日期时间中查找字符串部分

时间:2018-07-19 10:52:56

标签: c# sql linq

我想做的是允许用户搜索结果集中显示的日期的部分

结果表

ID  | Name | Date  
1     Bob    31 August 2018  
2     Bill   29 June 2000  
31    Foo    1 June 2005  

有一个搜索框,如果用户搜索说“ 31”,则需要使用Linq和Entity Framework 6构建一个IQuerable <>。

var searchValue = "31"

var data = IQuerable<T>

data.Where(x => x.Date.ToString("D").Contains(searchValue)
                || x.Id.Contains(searchValue)
                || x.Name.Contains(searchValue)).Take(x).Skip(Y)

结果应为

ID  | Name | Date  
1     Bob    31 August 2018  
31    Foo    1 June 2005

但是结果始终为空。

我正在搜索的表大约有500,000条记录。 除日期外,它适用于所有内容。

1 个答案:

答案 0 :(得分:1)

选中此测试示例,用您的对象值替换date对象,并在其中包含一个需要检查的值中传递一个值。

   class Program
    {
        static void Main(string[] args)
        {
            var data = new DateTime[] { new DateTime(2018, 09, 01), new DateTime(2018, 08, 11) };
            var query = data.Where(x => x.Date.ToString("D").Contains("Aug"));
            foreach (var dat in query)
            {
                Console.WriteLine(dat);
            }
            Console.ReadKey();
        }
    }

让我知道它是否对您有用。