EF Core MySQL包含(变量)类运算符
我正在使用ASP.NET Web API Core和EF Core创建一个方法,该方法返回JSON格式的记录。EF Core MySQL包含(变量)类运算符,mysql,entity-framework,entity-framework-core,asp.net-core-webapi,Mysql,Entity Framework,Entity Framework Core,Asp.net Core Webapi,我正在使用ASP.NET Web API Core和EF Core创建一个方法,该方法返回JSON格式的记录。 当我对类运算符(%Variable%)使用contains时,出现以下错误消息: Microsoft.EntityFrameworkCore.dll中发生“MySql.Data.MySqlClient.MySqlException”类型的异常,但未在用户代码中处理 附加信息:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在“+”%附近使用的正确语法 按第4行的pSt
当我对类运算符(%Variable%)使用contains时,出现以下错误消息: Microsoft.EntityFrameworkCore.dll中发生“MySql.Data.MySqlClient.MySqlException”类型的异常,但未在用户代码中处理 附加信息:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在“+”%附近使用的正确语法 按第4行的
p
StoreId
,p
CategoryId
'排序
似乎%符号之一的位置不正确。我检查了代码和原始sql输出,但没有发现任何问题。
希望有人能帮我强>
var query = from p in db.Products
join c in db.ProductCategory
on new { p.StoreId, p.CategoryId } equals new { c.StoreId, c.CategoryId } into pc
from c in pc.DefaultIfEmpty()
where (p.ProductName.Contains("a"))
select p;
query.ToList()
原始SQL
SELECT `p`.`StoreId`, `p`.`ProductId`, `p`.`CategoryId`, `p`.`Description`, `p`.`ImagePath`, `p`.`ProductName`, `p`.`SalesPeriodFrom`, `p`.`SalesPeriodNeverEnd`, `p`.`SalesPeriodTo`, `p`.`SalesUnit`, `p`.`UnitPrice`, `c`.`StoreId`, `c`.`CategoryId`, `c`.`CategoryName`
FROM `Products` AS `p`
LEFT JOIN `ProductCategory` AS `c` ON (`p`.`StoreId` = `c`.`StoreId`) AND (`p`.`CategoryId` = `c`.`CategoryId`)
WHERE `p`.`ProductName` LIKE ('%' + 'a') + '%'
ORDER BY `p`.`StoreId`, `p`.`CategoryId`
Windows 7 Professional x64Visual Studio 2015专业版
MySQL 5.6.17 Microsoft.NET Core 1.0.1
有依赖关系
"Microsoft.ApplicationInsights.AspNetCore": "1.0.2",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"MySql.Data.EntityFrameworkCore": "7.0.5-IR21",
"System.Linq.Dynamic.Core": "1.0.6.6"
我发现将MySql.Data.EntityFrameworkCore从“7.0.6-IR31”更改为“6.10.0-alpha”将产生有效的SQL语法 6.10.0-alpha更为新颖 然而,另一个问题出现了。请看这里
我认为别无选择,只能等待更新修复错误。您是否尝试设置为可查询,然后应用where谓词?我也有同样的问题,您找到解决方案了吗?谢谢。它解决了我的问题。