2012-04-22 6 views
0

я в классе GenericRepository этот метод:C#, GenericRepository, Service Layer

public virtual IEnumerable<TEntity> Get(
      Expression<Func<TEntity, bool>> filter = null, 
      Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, 
      string includeProperties = "") {...} 

И в слое сервиса у меня есть:

IAdsRepository _adsRepository; 

     public AdsService(IAdsRepository adsRepository) 
     { 
      _adsRepository= adsRepository; 
     } 

public IEnumerable<Ads> GetAllAds(....) 
     { 
      return _adsRepository.GetAll(....); 
     } 

(я есть хранилище для указания genericRepository)

У кого-то есть идея, как параметры передаются методу Get()?

большое спасибо,

ответ

0

Первый параметр Expression<Func<TEntity, bool>> filter принимает функцию фильтра, который принимает TEntity в качестве параметра и возвращает логическое значение, которое истинно, если объект должен быть включен в результат. Например, x => x.Value > 7 могут быть переданы, чтобы вернуть все Get TEntities с Value больше 7.

Второй параметр принимает IQueryable в качестве параметра и возвращает IOrderedQueryable (т.е. там, где определен порядок сортировки) Например x => x.OrderBy(y => y.Value) закажет результаты по Value.

Например, тогда;

repository.Get(x => x.Value > 7, x => x.OrderBy(y => y.Value)); 

возвращает все объекты с Value больше 7, упорядоченный по значению.

+0

спасибо за ваш ответ, есть ли способ обобщить мой сервис (GetAll (...)), потому что в контроллере я хочу указать параметры для GetAll (...) –

+0

@saisne Я не уверен, что я понимаете вопрос, вы не упоминаете, что GetAll должен вернуть или что вы хотите, чтобы его параметры были. –

Смежные вопросы