是否可以使用谓词表达式作为HTTPGET请求的参数(到mvc api控制器)。
背景:我正在尝试构建汽车租赁网络应用程序。 使用MSsql for db,EntityFramework(代码优先),(通用)CRUD函数和MVC API控制器的存储库。
我的目标是使用谓词linq表达式通过api控制器向db发送查询。 代码:
存储库:
<script>
function users(tik) {
var user = tik.id;
if(user === "student")
{
<?php $_SESSION["yetki"]="student"; echo $_SESSION["yetki"]; ?>
}
else ()
{
<?php $_SESSION["yetki"]="manager"; echo $_SESSION["yetki"]; ?>
}
}
</script>
api get(谓词表达式参数)函数:
public IQueryable<T> Search<T>(Expression<Func<T, bool>> predicate) where T : class, IDataEntity
{
return _context.Set<T>().Where(predicate);
}
客户端html angular / jq ajax请求:
public HttpResponseMessage Get(Expression<Func<Car, bool>> predicate)
{
using (IRepository Manager = Factories.Factory.GetRepository())
{
var CarList = Manager.Search<Car>(predicate)
.Select(x => new CarDTO()
{
...
})
.ToList();
return Request.CreateResponse<List<CarDTO>>(HttpStatusCode.OK, CarList);
}
}
(我使用agulars $ http代表ajax请求,类似于$ .getJSON)
是否可以通过ajax(get)请求将谓词表达式发送给期望获取linq表达式作为参数的api控制器?
如果是这样,怎么样? 如果没有,实现目标的正确/适当方式是什么?