【问题标题】:Error "You have an error in your sql syntax entity framework" with Entity Framework实体框架出现错误“您的 sql 语法实体框架中有错误”
【发布时间】:2014-08-05 16:03:24
【问题描述】:

我在尝试更新 MySQL 数据库中的数据时收到“您的 sql 语法实体框架中有错误”。我正在开发一个使用 .edmx 文件与数据库交互的 MVC 4 ASP.NET 应用程序。

这是我的情况:我有两个表:A 和 B。A 有很多 B,B 有很多 A,所以我制作了一个 C 表,其中包含 A 的外键和 B 的外键。现在我正在尝试删除 C 中的这些行之一。当我踏上db.SaveChanges(); 行时,它会抛出一个异常,说明我已经提到过的内容。

有人知道我该如何解决吗?

【问题讨论】:

  • 检查InnerException中是否有消息。
  • 另外请提供异常的完整堆栈跟踪
  • 请编辑您的帖子以包含您对问题的任何其他信息。避免在 cmets 中添加它,因为它们更难阅读并且更容易删除。帖子的编辑按钮就在帖子标签的下方。
  • @Basic 抱歉,我是在 StackOverflow 中发布问题的新手。顺便说一句,我已经找到了解决问题的方法!无论如何,谢谢!
  • 很高兴你解决了你的问题。您可以使用下面的按钮回答您自己的问题。最好将答案保留在答案部分。然后你可以接受它,这样未来的读者就会更容易找到你发现的东西。

标签: c# mysql asp.net entity-framework edmx


【解决方案1】:

发生的情况是,在执行db.SaveChanges() 时(更新后),.edmx 尝试更新“C”表中的行,但由于该表只有 A 和 B 的两个外键,不支持更新操作。这是我在 StackOverflow 的其他帖子中找到的解决方案,它对我有用:

  1. 右击edmx文件,选择打开方式,XML编辑器
  2. 完全删除 DefiningQuery
  3. store:Schema="dbo" 重命名为Schema="dbo(去掉“store:”)
  4. 删除store:Name=... 属性(完全)

注意:这是从问题中移出并代表 OP 发布的。

【讨论】:

    【解决方案2】:

    通过删除/注释掉 edmx 文件中的“DefiningQuery”部分解决了这个问题。不必为我做任何重命名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      • 2015-07-06
      • 2018-06-27
      • 2014-11-19
      • 1970-01-01
      • 2016-09-05
      相关资源
      最近更新 更多