【发布时间】:2016-02-08 13:35:39
【问题描述】:
我尝试让实体框架(5 或 6)与 MySQL 5.7(数据库优先)一起使用,但为(测试)数据库添加实体数据模型会导致错误“生成模型时发生意外异常。StrongTypingException : 表 TableDetails 中列 'IsPrimaryKey' 的值为 DBNull。”。顺便说一下,该表有一个主键:
CREATE TABLE `test` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Value` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
在试图找到这个问题的根源时,我尝试了一些组合:
- MySQL 5.6 与 EF 5 一起工作。我可以添加、更新和使用 EDMX 模型。
- 带有 EF 6 的 MySQL 5.6 可以部分工作。添加 EDMX 模型时,向导会崩溃。我可以为 EF 5 添加一个模型,将 EF 更新为 6,安装 Nuget 包“MySql.Data.Entity”并将 EDMX 模型更新为 EF 6。该模型在运行应用程序时工作。但是尝试从数据库中更新模型会导致异常。
- 在像上面那样创建 EF 6 模型并在装有 MySQL 5.7 的机器上使用它后,模型可以工作,但更新(再次)会导致 StrongTypingException。李>
我希望这个问题可以通过一些 MySQL 配置来解决。我已经在装有 MySQL 5.7 的机器上尝试了show_compatibility_56=ON。没有帮助。
【问题讨论】:
-
你解决过自己的问题吗???我有完全相同的问题。如果您解决了问题,我很乐意为您的问题和答案 +1。
-
不,我没有解决。我使用 MySQL 5.6 和 EF 5 解决了问题。
-
:( ...哦,好吧。本来很好。我能够通过代码优先映射使 EF6 和 MySQL 一起工作,这并不像听起来那么痛苦...越过我的我没有碰到任何其他障碍的手指。
标签: mysql entity-framework entity-framework-6 mysql-5.7