linq to entity,where子句如何使用?:表达式

linq to entity,How does the where clause use ?: Expression

TAB_XXXTAB_XXX_details是一对多的关系,我需要查询这两个表,但是,我们需要过滤TAB_XXX_details

代码如下:

var qu = from c in db.TAB_XXX.Where(n => n.DELETE_MARK == false)
        let dets = c.TAB_XXX_DETAILS.Where(n => condition.SaleType.HasValue ? n.SALE_TYPE == (decimal)condition.SaleType : 1 == 1)
        select new
        {
            c,
            dets
        };

Condition.SaleType就是number?,如果condition.SaleType是一个合法的数字,比如1,2,3...我想根据这些数字过滤子记录;当 condition.SaleTypenull 时,我想查询 TAB_XXX 及其所有子记录;

如何修改 where 子句?

感谢您的回答!

由于 1 == 1 总是 true,您的条件归结为:

let dets = c.TAB_XXX_DETAILS
    .Where(n => !condition.SaleType.HasValue || n.SALE_TYPE == condition.SaleType.Value)

本质上,当 condition.SaleType 没有 值时,您想要 return 所有行;否则,您将与 condition.SaleType.Value.

进行比较