【发布时间】:2019-08-15 08:24:14
【问题描述】:
我正在使用 Entity Framework Core 并尝试执行具有两个过滤器参数的查询并返回响应。我正在从 Angular 应用程序调用我的 API。
以上两者都可以作为查询传递给 EF Core,或者用户可能只选择一个字段,然后相应地过滤器应该更改
我正在做的如下所示
public List<ShipmentDetailByShipDate> GetByQueryFilter(string queryPara)
{
var queryParameter = new SqlParameter("queryPara", queryPara);
return _context.ShipmentDetailsByShipDate.FromSql<ShipmentDetailByShipDate>(SQueryPara, queryParameter).ToList();
}
字符串SQuerPara 保存查询的位置
SQueryPara = @"Select prj_number,location from sTable where @queryParameter group by prj_number,location";
我的控制器方法是这样的
public IActionResult GetByQueryFilter()
{
string queryPara = "r_proj = '000634' and sdate = '2019-07-01'";
return Ok(_shipmentRepository.GetByQueryFilter(queryPara));
}
出于测试目的,我在控制器中对queryPara 进行了硬编码。但是当我调用我的 API 时,我收到了类似的错误
System.Data.SqlClient.SqlException: 'Must declare the scalar variable "@queryParameter".'
我该如何处理这种情况,可以用不同的方式处理吗?
【问题讨论】:
-
@queryPara!=@queryParameter -
好的。这似乎是XY problem。
标签: c# entity-framework asp.net-core asp.net-web-api