У меня есть таблица WorkOrders
.Таблица имеет поле PrimaryWorker
& PrimaryPay
.Он также имеет поле SecondaryWorker
& SecondaryPay
(которое может быть null
).
Я хочу выполнить 2 очень похожих запроса и объединить их так, чтобы он возвращал поле Worker
Field & Pay
.Таким образом, если бы в одной записи WorkOrder
были заполнены поля PrimaryWorker
и SecondaryWorker
, я бы получил обратно 2 записи.
Часть "where clause" в этих 2 запросах очень похожа и долго конструируется,Вот фиктивный пример
var q = ctx.WorkOrder.Where(w => w.WorkDate >= StartDt && w.WorkDate <= EndDt);
if(showApprovedOnly)
{
q = q.Where(w => w.IsApproved);
}
//...more filters applied
Теперь у меня также есть флаг поиска с именем hideZeroPay
.Если это правда, я не хочу включать запись, если работнику заплатили 0 долларов.Но очевидно, что для 1 запроса мне нужно сравнить поле PrimaryPay
, а для другого мне нужно сравнить поле SecondaryPay
.
Поэтому мне интересно, как это сделать.
Могу ли я клонировать свой базовый запрос q
и сделать из него первичный и вторичный рабочий запрос, а затем объединить эти 2 запроса вместе?