初學Entity Framework 6.0 與 MySQL共同使用遇到的2個問題

這是困擾我好久的問題,一直在網上搜索沒有找到合適的答案。請某些大俠幫助指定一下,非常感謝。


問題的背景:
初學Entity Framework6.0,想嘗試Code First這種開發理念,以《使用Entity Framework 4進行代碼優先開發》作爲學習的教材,並一步一步去嘗試。唯一的區別:作者是使用SQL Server ce4.0 作爲數據庫,而我是使用MySQL作爲數據庫。

————————注:因整個工程過大,僅附上部分源代碼


遇到的問題:
1,啓動程序,Entity Framework 會自動連接MySQL服務器區創建數據庫。在創建數據庫的時候,會報錯:Specified key was too long; max key length is 767 bytes. 實際上,數據庫已經創建成功。


wKiom1UXg8qCqxz-AAahs4IXgWY797.jpg


2,當我再一次啓動程序,又遇到不一樣的錯誤:Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations. 如果去MySQL刪除數據庫,又回到第一個錯誤。

wKioL1UXhQjyruAhAAbLO3SteuQ270.jpg


個人的思路:

第一個錯誤,從網上的資料來看,和字符集有關係。對此,我檢查了my.ini 文件,配置如下:
------------------------------------------------
# 設置mysql的安裝目錄
basedir=G:\eDoctor\installedsoft\mysql-5.6.22-winx64
# 設置mysql數據庫的數據的存放目錄
datadir=G:\eDoctor\installedsoft\mysql-5.6.22-winx64\data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認爲8比特編碼的latin1字符集
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
------------------------------------------------
對於第二個錯誤,儘管手工刪除數據庫可以解決此問題,但我不可能每一次啓動程序之前都做同樣的錯誤,肯定有更加徹底的辦法。

所用到的資料:
1,How to start using Entity Framework 6 with MySQL databases

      http://forums.mysql.com/read.php?174,601264,601264(瞭解Entity Framework 怎麼和MySQL一起工作

2,New Embedded Database Support with ASP.NET(瞭解SQL Server CE4.0)

      http://weblogs.asp.net/scottgu/new-embedded-database-support-with-asp-net

3,Entity Framework Providers for EF6(瞭解Entity Framwork 支持哪些數據庫驅動)

      https://msdn.microsoft.com/en-us/data/jj730568

4,其他
   http://www.cnblogs.com/StudyLife/archive/2013/07/15/3192205.html
   http://www.cnblogs.com/TomXu/archive/2011/11/25/2263225.html
   http://blog.sina.com.cn/s/blog_4027f79a0100mf0v.html
   http://database.51cto.com/art/201010/229167.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章