遇到了一个比较特殊的查询(表没有设计好,也就是加一个字段能解决了),才发现了linq to sql 还可以这样的去动态的拼接where条件,不然也不会这样写,这里记录一下,代码如下:
from bill in list
join invoice in _invoiceAppService.Query()
on bill.BillNo equals invoice.BillNo
into tempData
from data in tempData.DefaultIfEmpty()
where !bill.IsDeleted
&& ((input.InvoiceStatus == -1 && data.InvoiceStatus != -1) || (input.InvoiceStatus > -1 && data.InvoiceStatus == input.InvoiceStatus))
group bill by new { bill } into g
select g.Key.bill;( )包起来一个查询条件,| | 就相当于if else了,还比较方便,作为记录。
本文介绍了一种使用LINQ进行动态拼接WHERE条件的方法,这种方法能够灵活地根据输入参数构建查询条件,适用于需要动态调整查询逻辑的场景。

549

被折叠的 条评论
为什么被折叠?



