linq to sql 动态拼接条件

遇到了一个比较特殊的查询(表没有设计好,也就是加一个字段能解决了),才发现了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了,还比较方便,作为记录。

你可能感兴趣的:(C#)