我正在使用EF Core 2.2.6。我有一个使用以下代码调用的存储过程:
var dateFromParam = new MySqlParameter("@DateFrom", dateFrom.ToShortDateString());
var dateToParam = new MySqlParameter("@DateTo", dateTo.ToShortDateString());
List<MyData> result = await context.Query<MyData>().AsNoTracking().FromSql("CALL MyStoredProcudure @p0, @p1",
parameters: new [] { dateFromParam, dateToParam }).ToListAsync();
,我收到以下错误消息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@p0, @p1' at line 1",
如何调用它并传递我拥有的两个参数?
答案 0 :(得分:0)
请参阅GitHub上有关EF Core 3.0相同问题的答案。
简而言之,请完全按照定义的名称使用参数名称,并使用MySQL正确的call syntax(括号):
var dateFromParam = new MySqlParameter("@DateFrom", dateFrom.ToShortDateString());
var dateToParam = new MySqlParameter("@DateTo", dateTo.ToShortDateString());
List<MyData> result = await context
.Query<MyData>()
.AsNoTracking()
.FromSql("CALL MyStoredProcudure(@DateFrom, @DateTo)",
parameters: new [] { dateFromParam, dateToParam })
.ToListAsync();