执行存储过程时,带有Pomelo适配器的EF Core返回错误

我正在使用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",

如何调用它并传递我拥有的两个参数?

tasa86 回答:执行存储过程时,带有Pomelo适配器的EF Core返回错误

请参阅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();

本文链接:https://www.f2er.com/3015106.html

大家都在问