MySQL&EntityFrameworkCodeFirst数据表大小写的问_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL&EntityFrameworkCodeFirst数据表大小写的问_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2373字,纯文字阅读大概需要4分钟。
内容图文
bitsCN.com以前都是使用Linux平台下的MySQL,现在为了调试方便,在开发机上安装了MySQL的Windows版本5.6.10,在使用Entity Framework Code First生成数据库对象时,发现所有的数据表的表名都变成了小写字符,而字段的名称是混合大小写的,这个问题在Linux平台上没有出现过,于是着手弄明白这是肿么一回事。
经过网上搜索,找到这篇文章:
Entity Framework with mysql, Table Capitalization issue between linux and windows
大致的意思是说:这个问题产生的根源是操作系统,MySQL保存数据表到文件,最初MySQL是在Linux平台开发的,文件名和数据表名称都是大小写敏感的,因为绝大多数的Linux文件系统是大小写敏感的。
后来,MySQL推出Windows平台的版本,而Windows平台是大小写不敏感的,所以无法区分大小写的名称。为了解决这个问题,需要添加设置来忽略表名的大小写。于是建立了lower_case_table_names设置选项。在Windows平台可以在my-default.ini文件中设置,该文件位于 C:/Program Files/MySQL/MySQL Server X.Y 目录下。在Linux平台可以修改my.cnf中的设置项。
缺省的选项--
Linux平台:大小写敏感 Case-Sensitive
Windows平台:大小写不敏感 Case-Insenstitive
问题的原因找到啦,我们可以在Linux中设置lower_case_table_names为1启用大小写不敏感。也可以设置MySQL在Windows中大小写敏感,但是这不是个好主意。
记住,更改设置后需要重启MySQL服务。
在Linux中最好使用大小写敏感的设置,会获得更高的性能。在Windows平台最好使用大小写不敏感的设置,因为不能存在两个仅有大小写差异而文件名字母相同的表。
由此而生,这也是为什么Linux下MySQL的性能会好过Windows下的原因。(其他原因有:更好的计划调度更快的磁盘IO和文件系统)
也可以在创建数据库时使用下面的语句来指定大小写敏感设置:
CREATE DATABASE test_database CHARACTER SET utf8 COLLATE utf8_general_cs; //实测:这一句不能在Windows平台下的MySQL使用;CREATE DATABASE test_database CHARACTER SET utf8 COLLATE utf8_general_ci;
相应的,也可以为某一个数据表设置大小写敏感:
DROP TABLE IF EXISTS single_test_table;CREATE TABLE single_test_table( single_test_id int unsigned NOT NULL auto_increment, ... PRIMARY KEY PK_single_test_id (single_test_id ), ...) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_cs;
官方文档5.6.10中指出:
If you are using InnoDB tables, you should set this variable to 1 on all platforms to force names to be converted to lowercase.
如果使用InnoDB引擎,应该在所有的平台设置lower_case_table_names=1强制名称都转换为小写。
如果要使Windows平台下的MySQL和Linux平台下的MySQL协同工作,你需要设置Linux平台下的全局变量lower_case_table_names=1,强制将数据表名称转换为小写(大小写不敏感)。
bitsCN.com
内容总结
以上是互联网集市为您收集整理的MySQL&EntityFrameworkCodeFirst数据表大小写的问_MySQL全部内容,希望文章能够帮你解决MySQL&EntityFrameworkCodeFirst数据表大小写的问_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。