0

私はクラスGenericRepositoryにこのメソッドを持っています:

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()にどのように渡されるかについての考えを持っていますか?

どうもありがとうございます、

4

1 に答える 1

0

最初のパラメーターExpression<Func<TEntity, bool>> filterは、TEntityをパラメーターとして受け取り、結果にエンティティーを含める必要がある場合にtrueとなるブール値を返すフィルター関数を取ります。たとえば、7より大きいすべてのTEntityを返すx => x.Value > 7ように渡すことができます。GetValue

2番目のパラメーターは、パラメーターとしてIQueryableを取り、IOrderedQueryableを返します(つまり、ソート順が定義されている場合)。たとえばx => x.OrderBy(y => y.Value)、結果を。で並べ替えますValue

たとえば、

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

Value値順に並べられた、7より大きいすべてのエンティティを返します。

于 2012-04-22T17:02:09.460 に答える