Я пытаюсь улучшить свой репозиторий, чтобы он отвечал за порядок. Я применил ответ от на этот вопрос , и что касается хранилища, я почти уверен, что это сделано.
Проблема, с которой я сталкиваюсь, заключается в том, что я не уверен, как теперь передать массив методам в хранилище. Компилятор продолжает кричать на меня о делегатах. В связанном выше вопросе автор, по сути, делает то, что я хочу, поэтому это должно быть возможно.
Вот мой код хранилища:
public virtual IList<TEntity> SelectOrderedList(
Expression<Func<TEntity, bool>>[] Orderers,
bool Ascending = true) {
IOrderedQueryable<TEntity> TemporaryQueryable = null;
foreach (Expression<Func<TEntity, bool>> Orderer in Orderers) {
if (TemporaryQueryable == null) {
TemporaryQueryable = (Ascending ? this.ObjectSet.OrderBy(Orderer) : this.ObjectSet.OrderByDescending(Orderer));
} else {
TemporaryQueryable = (Ascending ? TemporaryQueryable.ThenBy(Orderer) : TemporaryQueryable.ThenByDescending(Orderer));
};
};
return TemporaryQueryable.ToList();
}
Кстати, я не уверен на 100%, что должен использовать Expression<Func<TEntity, bool>>
. По какой-то причине у меня такое ощущение, что это должно быть Expression<Func<TEntity, int>>
, но я не слишком уверен.
В любом случае, я был бы очень признателен, если бы кто-нибудь показал мне, как на самом деле это назвать. Бонусные баллы и любовь, если вы можете заставить это работать как аргумент params
.