使用?:实体框架上的操作数

本文关键字:操作数 框架 实体 使用 | 更新日期: 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);

这样,您就可以使用任何类型的外部条件来影响查询,而不必在查询本身中使用这些外部条件。