c#,GenericRepository,服务层

时间:2012-04-22 16:49:16

标签: c#-4.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()?

非常感谢,

1 个答案:

答案 0 :(得分:0)

第一个参数Expression<Func<TEntity, bool>> filter采用过滤函数,该函数将TEntity作为参数并返回一个布尔值,如果该实体应包含在结果中,则为true。例如,可以传递x => x.Value > 7以使Get返回Value大于7的所有TEntities。

第二个参数将IQueryable作为参数并返回IOrderedQueryable(即定义排序顺序的位置)例如x => x.OrderBy(y => y.Value)将按Value对结果进行排序。

例如,然后;

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

将返回Value大于7的所有实体,按值排序。