Изменение выражения запроса после создания - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь создать новый запрос, затем на основании определенных условий отредактировать и добавить к нему. Я не знаю, как сделать функции, написанные в скобках []

/* Create the query */
var query = from quote in Query() 
where quote.documentNum = document_Input
select quote;

// Now change the sort field
query = filter.sort == SortFied.quote ? [alter the query function to sort by documentNum<string>] : [alter the query function to sort by enteredData<DateTime?>]

// Now change the sort direction
query = filter.sortDir == SortDirection.Ascending ? [alter the query to sort in an Ascending order] : [alter the query to sort in an Descending order]

Это всего лишь два условия, которые необходимо добавить впоследствии. Цель добавления его впоследствии состоит в том, чтобы избежать дублирования кода для каждого возможного условия.

1 Ответ

0 голосов
/ 22 марта 2019

Я предполагаю, что-то вроде этого.

var query = Query().Where(x => x.documentNum == document_Input);
query = filter.sortDir == SortDirection.Ascending ? query.OrderBy(x => filter.sort == SortFied.quote ? x.documentNum : x.enteredData) : query.OrderByDescending(x => filter.sort == SortFied.quote ? x.documentNum : x.enteredData);

Вы можете еще больше сократить дублирование кода с помощью делегатов.

...