c# - C# linq 查询,每个属性的 where 子查询
问题描述
我有这张桌子:
我想做一个 linq 查询,我将根据 adminfilterfieldid 获取每个属性值。
到目前为止我有这个:
newDto = from d in DbContext.AdminFilterItems
where d.AdminFilterID == filterId
select new ReservationDto
{
BookingDate = d.Value
};
现在由于 BookingDate 是 AdminFilterFieldId 是 2,我希望我可以做类似BookingDate = d.Value.Where(s => s.AdminFilterFieldID = 3)
或 null 的事情,以防该 adminfilterfieldid 没有值。我想为该 adminfilterid 的所有字段执行此操作。
这种查询是否可以通过某种方式实现,还是我需要进行多个查询?
解决方案
它看起来很简单,只是你的 where 中的另一个子句。
from d in DbContext.AdminFilterItems
where d.AdminFilterID == filterId
&& d.AdminFilterFieldID = 3
select new ReservationDto
{
BookingDate = d.Value
};
如果您需要对多个值进行过滤,只需保留初始查询并在其上运行其他过滤器,然后进行投影(选择)。
var qry = from d in DbContext.AdminFilterItems
where d.AdminFilterID == filterId
// Filter 1
qry.Where(d => d.AdminFilterFieldID = 3).Select(d => new ReservationDto
{
BookingDate = d.Value
});
// Filter 2
qry.Where(d => d.AdminFilterFieldID = 2).Select(d => new ReservationDto
{
BookingDate = d.Value
});
推荐阅读
- c# - 关于与数据表相关的“绘制”
- html - 如何从 XML 中选择不同的值
- azure-devops - 如何在 Azure Devops 的 PR 上插入建议?
- sql - 需要帮助根据另一列中的日期范围获取一列的总和
- javascript - 使用 vue-charts.js,我无法让 hoverOffset 与甜甜圈一起使用
- python - 查找文本python3中列表中的某个单词
- python-3.x - 使用 tf.Variable(range(0,20),shape=(10,2)) 创建 10 x 2 矩阵时出现值错误
- css - 使用 LESS 在不同的 HTML 标签中使用不同的样式
- javascript - 如何使用 jquery 设置 attr parent() ::before 元素?
- vue.js - 要求用户具有角色并登录路由