entity-framework - 过滤器在我的 ASP.NET Core 存储库中不起作用
问题描述
我在一个类中有这些参数:
public class UserParams
{
public string Gender {get; set;}
public int MinAge {get; set;} = 1;
public int MaxAge {get; set;} = 19;
}
查询在存储库中完成,如下所示。第一个是查询孩子的性别或性别,第二个是查询孩子的性别或性别
var query = _context.Children.AsQueryable();
query = query.Where(c => c.Sex == userParams.Gender);
var minchildDob = DateTime.Today.AddYears(-userParams.MaxAge - 1);
var maxchildDob = DateTime.Today.AddYears(-userParams.MinAge);
query = query.Where(u => u.DateOfBirth >= minchildDob && u.DateOfBirth <= maxchildDob);
return await PagedList<Child>.CreateAsync(query.AsNoTracking(), userParams.PageNumber, userParams.PageSize);
性别过滤器返回空的子数组,并且 minchildDob 和 maxchildDob 也不起作用
解决方案
if (!string.IsNullOrEmpty(temp.Gender))
{
all = all.Where(u => new[] { "men", "women" }.Contains(u.sex));
//all = all.Where(t => t.sex == temp.Gender);
}
========================更新=======================
var temp = new UserParams();
temp.Gender = "men";
var minchildDob = DateTime.Today.AddYears(-temp.MaxAge - 1);
var maxchildDob = DateTime.Today.AddYears(-temp.MinAge);
IEnumerable<Table> all = from m in _context.data
select m;
_logger.LogError("all data");
foreach (var item in all)
{
_logger.LogError(item.name);
}
_logger.LogError("============================================");
if (!string.IsNullOrEmpty(temp.Gender)) {
all = all.Where(t => t.sex == temp.Gender);
}
_logger.LogError("filter gender");
foreach (var item in all) {
_logger.LogError(item.name);
}
_logger.LogError("============================================");
if (temp.MaxAge > 0) {
all = all.Where(t => t.birthday >= minchildDob && t.birthday <= maxchildDob);
}
_logger.LogError("filter age");
foreach (var item in all)
{
_logger.LogError(item.name);
}
_logger.LogError("============================================");
推荐阅读
- python - Python folium:在 GeoJsonPopup 中显示依赖于 fields=['id'] 的内容
- validation - Laravel 表单请求验证的条件
- visual-studio-2012 - Visual Studio 2012 for Dymola 无法编译
- excel - 错误 1004,“范围”上的方法“锁定”失败:VBA if cell1="" Then cell2=x
- python - 在图 yticks-xticks 上排列值和标签
- django - 使用 ModelChoiceField 将模型分配给另一个模型
- javascript - 反应钩子没有异步设置
- spring - UnknowhHostException 使用 spring-cloud-starter-gateway 和 spring boot 2.4.0 及更高版本
- sql - bigquery sql中文字和别名之间缺少空格
- c++ - 如何为两种或更多数据类型创建函数模板?