【发布时间】:2016-02-10 04:02: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;
}
请注意,在我实际执行代码之前,我并不真正知道 string[] 的大小。然后如何在我的 linq 查询中添加此语句?
> && (arrayOfNames[0].Equals("abc") || arrayOfNames[1].Equals("cde") ||
> ... || arrayOfNames[n].Equals("cde"))
这可能吗?
顺便说一句。我在 ASP.NET 5 MVC6 EF7 解决方案上运行它,以防它有帮助:)
谢谢!
【问题讨论】:
-
为什么在
where条件中包含arrayOfNames[0].Equals...?这些似乎与查询无关。您不能在查询之前将它们放在if语句中吗?
标签: c# linq linq-to-sql