http://blog.csdn.net/kmguo/article/details/19650299
網上有很多關於用EntityFrame來連接Mysql數據庫的教程,可是很多並不靠譜,轉載的太多了。找了很久,總算是配置好了,現在分享一下。
一,安裝:
1、開發環境: VS2013與EF6
2、Mysql數據庫為:Mysql Server 6.0
3、安裝:Mysql for Visual Studio 1.1.1
4、安裝 Mysql Connector/Net 6.8.3 GA
二,引用dll:
1、采用Nuget安裝EF6.0.2;
2、采用Nuget安裝MySql.Data.Entity.EF6
注意:要采用Nuget進行安裝,否則可能會缺少相應的dll或者是配置信息
三、配置 web.config或app.config
1、將entitframework節點替代為:
<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
2、添加 ConnectionString節點:
<connectionStrings>
<add name="MyContext" connectionString="Data Source=localhost;port=3306;Initial Catalog=數據庫名稱;user id=Mysql的登錄用戶名;password=Mysql server密碼;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
四、測試C#代碼
- using System.Data.Entity;
- namespace StudyEF
- {
- public class MyContext : DbContext
- {
- public MyContext() : base("name=MyContext")
- {
- }
- public DbSet<Data> Datas { get; set; }
- }
- public class Data
- {
- public int Id { get; set; }
- public string Name { get; set; }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
- var context = new MyContext();
- context.Datas.Add(new Data{Name="EF6-MySql"});
- context.SaveChanges();
- }
- }
- }

六、采用Database First:
這種實現方式與在Sql server下的Database的做法是相同的,但是有時會連接不上Mysql。我一開始就嘗試采用Database來連接Mysql,但是在VS2013里一直無法連接到Mysql server。所以我才采用了上面的Code First。但是當我用Code Frist成功之后,我發現,我的VS2013也能夠連接到Mysql server了。真是神奇,具體原因我還不清楚。