c# - 如何使用 lambda 表达式在子集合中使用 where 条件?
问题描述
我想使用 lambda 表达式从集合列表中过滤数据。但是在使用 Fromdate 和 Todate 时,数据没有被正确过滤。它仅过滤帐户 ID 而不是日期。
这是我的 lambda 表达式:
var query = context.Accounts
.Include(s => s.Sales)
.Where(a => a.Type == "C" && a.Sales.Count != 0).AsQueryable();
if (filter.AccountId.HasValue)
{
query = query
.Where(a => a.Sales.Any(s => (s.AccountId == filter.AccountId))).AsQueryable();
query = query.Where(a => a.Sales.Any(s => s.TransactionDate >= filter.FromDate.Date && s.TransactionDate <= filter.ToDate.Date));
}
if (!filter.AccountId.HasValue && (filter.FromDate.Date != DateTime.Now.Date || filter.ToDate.Date != DateTime.Now.Date))
{
query = query
.Where(a => a.Sales.Any(s => s.TransactionDate >= filter.FromDate.Date && s.TransactionDate <= filter.ToDate.Date));
}
return await query.ToListAsync();
解决方案
推荐阅读
- json - 在excel vba中解析数据时,无法弄清楚如何访问对象内的数组
- batch-file - 批处理:如何在不更改其他所有内容的情况下替换变量中文本的特定部分?
- python - 这行代码用简单的英语读什么?
- c# - 在 SQL Server 的同一列中插入多条数据
- ruby-on-rails - Rails + Vue.js - 使用 Ajax 更新 Vue 组件
- javascript - 如何重新渲染组件而不是调用构造函数?
- node.js - 跳过 GraphQL 解析器以返回数据
- c++ - 将 OpenCV cv::Mat 图像流式传输到网站(html5 页面)
- java - 检查线程关闭并在关闭后执行任务
- html - 分页符在 div 中不起作用。如何添加此标签?