1. 程式人生 > >EntityFramework 6.0< Code First > 連線 Mysql資料庫

EntityFramework 6.0< Code First > 連線 Mysql資料庫

網上有很多關於用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();
        }
    }
}
五、在Mysql的cmd下查詢:

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