Мой слой репозитория работал нормально, выставляя IList<T>
для списков таких вещей, как GetAll()
и т. Д. Однако я попытался использовать OrderBy
в одном из моих запросов LINQ. Затем я столкнулся с очень большими проблемами, потому что запрос LINQ не может быть преобразован в IList
. Он хочет вернуть IOrderedEnumerable
.
Это большая проблема, потому что я хочу, чтобы мое хранилище было автономным, а НЕ выставляло IQueryable
на мои услуги. Зачем мне менять архитектуру репо только из-за 'orderby'!
Итак, несмотря на это, я приступил к преобразованию уровня хранилища в возвращаемый IEnumerable
, чтобы я мог хотя бы вернуть отсортированные данные. Затем я столкнулся с большим количеством проблем, потому что тогда мне нужно было преобразовать мои классы данных в IEnumerable
, чтобы я мог легко сопоставлять свою модель представления и классы модели данных. (Это использует AutoMapper).
Затем я понял, что code-first не нравится IEnumerable
и он не будет строить отношения между таблицами, если не определен с использованием по крайней мере IList
(и мне также сказали ICollection
??).
Итак, мой вопрос: что мне отсюда? Все, что я хочу сделать, это вернуть данные клиенту (в данном случае сервисам) упорядоченным образом без изменения типов возврата на всем протяжении моего приложения.