我尝试让实体框架(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 配置以某种方式解决。我已经show_compatibility_56=ON
在使用 MySQL 5.7 的机器上进行了尝试。没有帮助。