EDMX 使用 lambda 表达式与 MySQL
我将 EDMX 与 MySql 5.1 一起使用。它工作正常,除了当我尝试执行 lambda 表达式时,它显示以下错误:- 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 17 行的“[XYZ].[UserID] AS [UserID], [XYZ].[FirstName] A”附近使用的正确语法,
其中 [XYZ]是表名,[UserID]、[FirstName] 是该表的列。以下是我要执行的语句 - _context.XYZSet.Where(org => org.ACDID == sbuID || !(org.ACDID.HasValue)).ToList();
请帮忙..
I am using EDMX with MySql 5.1. It is working fine except When I try to execute the lambda expression, it shows me the following error :-
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 '[XYZ].[UserID] AS [UserID], [XYZ].[FirstName] A' at line 17
where [XYZ] is the table name and [UserID], [FirstName] are the columns of that table. Following is the statement, that I want to execute -
_context.XYZSet.Where(org => org.ACDID == sbuID || !(org.ACDID.HasValue)).ToList();
Please help..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我对 EDMX 一无所知,但从该错误来看,它似乎使用 MS SQL Server 语法来转义表和列名称,这是 MySQL 不支持的。 MySQL 使用反引号而不是方括号。
如果您可以让 EDMX 停止转义表和列名称,那么您可能没问题,假设没有任何表/列名称是保留字。
I do not know anything about EDMX, but from that error it looks like it's using MS SQL Server syntax to escape table and column names, which is not supported by MySQL. MySQL uses backticks for that, not square brackets.
If you could get EDMX to stop escaping the table and columns names then you might be okay, assuming none of the table/column names are reserved words.