linq to entity,where子句如何使用?:表达式
linq to entity,How does the where clause use ?: Expression
TAB_XXX
和TAB_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.SaleType
为 null
时,我想查询 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
.
进行比较
TAB_XXX
和TAB_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.SaleType
为 null
时,我想查询 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
.