我在类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()?
非常感谢,
答案 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的所有实体,按值排序。