Я использую шаблон репозитория, и у меня есть базовый репозиторий, и я использую Entity Framework и web api; Мой вопрос: я хочу, чтобы мои клиенты могли запросить любые данные динамически; что-то вроде выражений запросов и выборки xml, используемых в Dynamics CRM; Я пробовал шаблон спецификации, но этого недостаточно, так как я хочу, чтобы клиентский код заказывал данные с разными столбцами, например. Имя ASC Адрес DESC, а также позволяет пагинацию на возвращенном результате, поэтому мои требования метода.NET Repository pattern generic Методология запросов
- общего фильтр, который не зависит от ОРМ технологии, как я могу изменить Entity Framework в будущем
- Generic Сортировки методология; разрешить несколько столбцов сортировки, например. Название asc Адрес desc
- Клиент определяет возвращенные столбцы или все столбцы, например. columnНаписать «Адрес, имя и идентификатор» или вернуть всю запись
- Разрешить разбиение на страницы, например. Страница Индекс и размер страницы порог
- Поддержка по количеству возвращенных записей, как большой результат может повлиять на производительность
это мой первоначальный метод, но я не знаю, если это лучше или нет
IList<TEntity> AllMatching(ISpecification<TEntity> specification = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
IList<Expression<Func<TEntity, object>>> includes = null,
int? pageIndex = null, int? pageCount = null);
спасибо за вашу помощь; я попробую их, но я хочу, чтобы эти запросы выполнялись в базе данных, а не в памяти; но поддерживает ли это решение общую методологию сортировки с несколькими столбцами; пожалуйста, дайте мне пример применения этого решения, а также как применить порог к возвращаемым данным. Как управлять максимальным количеством возвращенных строк – yo2011
также требуется использование LinqKit – yo2011
Спасибо, что он отлично работает без AsExpandable(); я не знаю его благосклонности; также, я хочу знать, как установить порог для возвращаемых строк; все большие приложения, такие как SharePoint, устанавливают пороговое значение для выполняемого запроса для проблем с производительностью. – yo2011