我玩弄的Web API,而我挣扎了一下与创建查询拉回来基于滤波器数据。典型的例子是基于外键撤回项目列表。的Web API和查询与外键
比方说,我有以下实体:
Movie
======
id
directorId
categoryId
它不会是少见,我建立以下方法一个DAO:
MovieRepo.GetByDirector(int directoryId);
MovieRepo.GetByCategory(int category);
最近,我一直在使用LINQ和实体框架构建一个可以被多个调用客户端使用的检索方法,但其返回的列表可以过滤,不管以何种标准被传递到过滤器
public IEnumerable<Movie> Get(MovieFilter filter){
IQueryable<Movie> query = _context.tblMovie;
if(!String.IsNullOrEmpty(filter.directorId))
query.Where(m => m.directoryId == filter.directorId);
if(!String.IsNullOrEmpty(filter.categoryId))
query.Where(m => m.categoryId == filter.categoryId);
return query.ToList();
}
倍
样板网页API控制器的操作是:
IEnumerable<Movie> Get();
Movie Get(int id)
如果我想通过目录或类别使用Web API来过滤我的查询,我会怎么做究竟是REST方式?鉴于路由的方式得到解决,以下将是一个暧昧电话:
IEnumerable<Movie> GetByCategory(int categoryId);
我还没有看到这么多指导,有人可以提供一些适合我?
问候,
克里斯
我希望人们会忘记OData存在。 – Phill
认为它是一个协议。我们不使用IQueryable,而是使用标准。用Google的** angularjs **。伟大的经验。你感觉到了吗? ;)OData和Google的JavaScript库。和NHibernate;) –