在 Linq-SQL 查询上添加不确定数量的 AND

本文关键字:AND 不确定 添加 Linq-SQL 查询 | 更新日期: 2023-09-27 18:33:51

假设我有以下函数...

private List<QueryObject> ReturnSQLData (DateTime d1, DateTime d2, string[] arrayOfNames)
{
    var results = (from a in _context.Names
                   where (a.CreatedOn >= d1 && a.CreatedOn <d2)
                   select new QueryObject
                   {
                       FirstName = a.Name
                       LastName = a.LastName
                   }).ToList();
    return results;
}

我怎样才能继续创建一个 Linq 查询,其中我有一些东西?

private List<QueryObject> ReturnSQLData (DateTime d1, DateTime d2, string[] arrayOfNames)
{
    var results = (from a in _context.Names
                   where (a.CreatedOn >= d1 && a.CreatedOn <d2)
                   && (arrayOfNames[0].Equals("abc") || arrayOfNames[1].Equals("cde")
                   select new QueryObject
                   {
                       FirstName = a.Name
                       LastName = a.LastName
                   }).ToList();
    return results;
}

请注意,在实际执行代码之前,我真的不知道字符串 [] 的大小。然后,如何在 linq 查询中添加此语句?

> && (arrayOfNames[0].Equals("abc") || arrayOfNames[1].Equals("cde") ||
> ... || arrayOfNames[n].Equals("cde"))

这可能吗?

顺便说一句。我正在 ASP.NET 5 MVC6 EF7 解决方案上运行它,以防它有助于:)

谢谢!

在 Linq-SQL 查询上添加不确定数量的 AND

你能做到:

&& arrayOfNames.Contains("cde")