MySql Entity Framework 数据库优先 - 主键=长?

标签 mysql entity-framework

我正在尝试将 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/

相关文章:

php - 试图获得非对象的属性

android - 使用内容解析器和内容提供程序时应用程序崩溃

c# - 如何在 EntityKey 上编写通用主键查找器?

sql-server - Entity Framework 中的新对象 - 主键问题

c# - 合并两个 List<T> 并使用 EF 过滤掉重复项

entity-framework - Entity Framework - 没有配置的数据库优先

java - 如何将用户重定向到包含他想在 jsp servlet 中修改的详细信息的预期页面?

MySQL - 如何通过字符串匹配将一个表中的值插入到另一个表中?

mysql - 在存储过程中循环准备语句查询的结果

c# - 为什么存储过程输出参数没有被 Entity Framework 的 ExecuteSqlCommand 方法读取?