MySql实体框架数据库第一 - 主键=长?

时间:2012-02-20 16:47:46

标签: mysql entity-framework

我正在尝试将MySql Entity Framework提供程序用于一个小项目。使用MySql Connector(由MySQL开发的,而不是DevArt)时,我总是遇到“怪癖”。

我发现最新的事情是,我的数据库生成的实体的Id字段获取long而不是int,即使数据库中的类型被指定为SIGNED INTEGER,AUTO INCREMENT ,主要的关键。

我唯一能想到的是LAST_INSERT_ID()总是返回long。由于我的实体依赖数据库来创建标识值,因此MySQL Connector可能会使Ids long适应插入后的id检索?

我遇到的所有问题最简单的解决方法是使用SQL Server。但是,此应用程序的目标是共享托管。即使您为SQL Server加载项付费,大多数共享主机也会将SQL Server实例限制为200MB,并且只允许1或2个数据库。在我看来,这太小了。相同的主机免费提供几个1GB的MySQL数据库。如果你长大了,你可能应该有一个专用的盒子。

1 个答案:

答案 0 :(得分:1)

MySQL将总是返回64位int(或BIGINT)而不是32位int。这就是为什么你得到一个长而不是一个int。

请参阅此bugreport: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