我想以这种方式使用它
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
语句,但是这个操作数在{{1}内部似乎没有工作。
这是一种应用此操作数的方法,或者我必须硬编码每个选项组合的if条件?
答案 0 :(得分:3)
您可以将它们链接到单独的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);
这样,您可以使用任何类型的外部条件来影响查询,而无需在查询本身中使用这些外部条件。