EntityFramework 6.0< Code First > 鏈接 Mysql數據庫(轉)

http://blog.csdn.net/kmguo/article/details/19650299mysql

網上有不少關於用EntityFrame來鏈接Mysql數據庫的教程,但是不少並不靠譜,轉載的太多了。找了好久,總算是配置好了,如今分享一下。
 
一,安裝:
    一、開發環境: VS2013與EF6
    二、Mysql數據庫爲:Mysql Server 6.0
    三、安裝:Mysql for Visual Studio 1.1.1
    四、安裝 Mysql Connector/Net 6.8.3 GA
            下載位置: http://dev.mysql.com/downloads/connector/net/
 
二,引用dll:
    一、採用Nuget安裝EF6.0.2;
    二、採用Nuget安裝MySql.Data.Entity.EF6
    注意:要採用Nuget進行安裝,不然可能會缺乏相應的dll或者是配置信息
3、配置 web.config或app.config
    一、將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>    
 
    二、添加 ConnectionString節點:
<connectionStrings>
    <add name="MyContext" connectionString="Data Source=localhost;port=3306;Initial Catalog=數據庫名稱;user id=Mysql的登陸用戶名;password=Mysql server密碼;" providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>
 
4、測試C#代碼
[csharp]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
  1. using System.Data.Entity;  
  2. namespace StudyEF  
  3. {  
  4.     public class MyContext : DbContext  
  5.     {  
  6.         public MyContext() : base("name=MyContext")  
  7.         {  
  8.         }  
  9.         public DbSet<Data> Datas { getset; }  
  10.     }  
  11.     public class Data  
  12.     {  
  13.         public int Id { getset; }  
  14.         public string Name { getset; }  
  15.     }  
  16.     class Program  
  17.     {  
  18.         static void Main(string[] args)  
  19.         {  
  20.             Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());  
  21.             var context = new MyContext();  
  22.             context.Datas.Add(new Data{Name="EF6-MySql"});  
  23.             context.SaveChanges();  
  24.         }  
  25.     }  
  26. }  
5、在Mysql的cmd下查詢:


 
6、採用Database First:
    這種實現方式與在Sql server下的Database的作法是相同的,可是有時會鏈接不上Mysql。我一開始就嘗試採用Database來鏈接Mysql,可是在VS2013裏一直沒法鏈接到Mysql server。因此我才採用了上面的Code First。可是當我用Code Frist成功以後,我發現,個人VS2013也可以鏈接到Mysql server了。真是神奇,具體緣由我還不清楚。
 
 
相關文章
相關標籤/搜索