我正在尝试使用LINQ查询来查询我的实体框架。我需要做的是添加我正在构建的查询,如果某些元素为真。
我从
开始IQueryable<Jobs> GetJobs(list<string> staff, list<string> clients
{
var query = dbContext.Jobs.Where(a=> (a.JobName.Contains("New Job"));
如果填充了列表,我需要添加查询
if (staff.Count > 0) {
query = query.where(a=>staff.Contains(a.staff));
}
if (client.Count > 0) {
query = query.where(a => a.Clients.select(b=>b.Name).Intersect(client).Any();
员工是1:1的关系,客户是多对多的。
如果我只包含工作人员或客户端,则查询有效,但当我同时包含人员或客户端时,它始终返回0。
答案 0 :(得分:0)
如果你想获得一系列工作,那就
JobName
喜欢“新工作”和Staff
列表和staff
个属性
clients
列表的客户然后,这应该工作。
IQueryable<Jobs> GetJobs(list<string> staff, list<string> clients)
{
var query = dbContext.Jobs.Where(x => x.JobName.Contains("New Job"));
if (staff != null && staff.Count > 0)
query = query.Where(x => staff.Contains(x.Staff));
if (clients != null && clients.Count > 0)
query = query.Where(x => x.Clients.Any(c => clients.Contains(c.Name)));
return query;
}