使用?:实体框架上的操作数
本文关键字:操作数 框架 实体 使用 | 更新日期: 2023-09-27 18:21:54
我想以这种方式使用
Context.Moves.OfType<Cuotes>().Where(p =>
p.Final == true
&& dtFrom.DateTime != null ? p.DeliverDate >= dtFrom.DateTime : true
&& dtTo.DateTime != null ? p.DeliverDate <= dtToHasta.DateTime : true
&& !ckShowDelivered.Checked ? p.Delivered == false : true
&& !ckShowDelivered.Checked ? p.Canceled == false : true
);
由于我尝试以这种方式操作多个筛选器,实际上我有另一个复选框来条件旧的Cuotes
版本是否与Final == false
语句一起显示,但Where
子句中的此操作数似乎不起作用。
这是一种应用此操作数的方法,或者我必须对每个选项组合的if条件进行硬编码?
您可以将它们链接到单独的Where
调用中:
var result = Context.Moves.OfType<Cuotes>().Where(p => p.Final == true);
if (dtFrom.DateTime != null)
result = result.Where(p => p.DeliverDate >= dtFrom.DateTime);
if (dtTo.DateTime != null)
result = result.Where(p => p.DeliverDate <= dtToHasta.DateTime);
if (!ckShowDelivered.Checked)
result = result.Where(p => !p.Delivered);
if (!ckShowDelivered.Checked)
result = result.Where(p => !p.Canceled);
这样,您就可以使用任何类型的外部条件来影响查询,而不必在查询本身中使用这些外部条件。