【发布时间】:2019-02-18 18:43:20
【问题描述】:
我想在满足任一条件时查找数据库中的数据。
粘贴我的代码,这样会更清楚
[HttpGet]
[Route("")]
public IEnumerable<User> GetUsers(string FirstName = null, string LastName = null, int Year = 0, int Month = 0)
{
var users = _context.Users.AsQueryable();
if (FirstName != null || LastName != null || Year != 0 || Month != 0)
{
users = _context.Users.Where(u => (u.CreatedAt.Year == Year) && (u.CreatedAt.Month == Month));
}
else
{
users = _context.Users;
}
return users.ToList();
}
这段代码在数据库中做一个简单的搜索
where year == createdAt.year &&
month == createdAt.month &&
LastName == abc &&
FirstName == abc
但是,如果其中一个条件是 0/null,那么数据库将不会返回任何内容,因为没有月/年 == 0 或名字/姓氏 == null;我想要的是,如果年/月/姓/名是 0/null,则忽略它并检查其他条件。
有什么想法吗?
【问题讨论】: