我正在尝试将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数据库。如果你长大了,你可能应该有一个专用的盒子。
答案 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。