我正在尝试将 MySql Entity Framework 提供程序用于一个小项目。在使用 MySql 连接器(由 MySQL 而非 DevArt 开发的连接器)时,我总是遇到“怪癖”。
我发现的最新情况是,即使数据库中的类型指定为一个带符号的整数,自动递增,主键。
我唯一能想到的是 LAST_INSERT_ID()
总是返回 long
。由于我的实体依赖于数据库来创建标识值,也许 MySQL Connector 使 IDs long
以适应插入后的 id 检索?
对于我遇到的所有问题,最简单的解决方法是只使用 SQL Server。但是,此应用程序的目标是共享主机。即使您为 SQL Server 附加组件付费,大多数共享主机也会将 SQL Server 实例限制为 200MB,并且只允许 1 或 2 个数据库。在我看来,这太小了。同一主机免费提供多个 1GB MySQL 数据库。如果你长大了,你可能无论如何都应该有一个专用的盒子。
最佳答案
MySQL 总是会返回 64 位 int(或 BIGINT)而不是 32 位 int。这就是为什么您得到的是 long 而不是 int。
查看此错误报告:http://bugs.mysql.com/bug.php?id=64084 ,以及关于 LAST_INSERT_ID() 的 MySQL 手册:http://dev.mysql.com/doc/refman/5.5/en/information-functions.html#function_last-insert-id .
关于MySql Entity Framework 数据库优先 - 主键=长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9364919/