[C#.NET][Framework] Code First use dotConnect for MySQL

[C#.NET][Framework] Code First use dotConnect for MySQL

dotConnect for MySQL 是一家強大的 3rd Component 它提供了相當多的資料庫存取元件,有興趣的人可以前往查看功能清單

http://www.devart.com/dotconnect/mysql/features.html

 

這篇主要是為試用心得

準備環境

1.安裝 dotConnect for MySQL 8.3 Professional Trial,http://www.devart.com/dotconnect/mysql/download.html

2.從NuGet 安裝 Entity Framework

3.加入以下參考

  • Devart.Data.dll
  • Devart.Data.MySql.dll
  • Devart.Data.MySql.Entity.dll

4.資料庫要存在,不存在會失敗,似乎沒有提供第一次動態建立 DB 的功能

 

完成之後便可開始 Coding,如同前面幾篇介紹的操作步驟,在這裡就節省詳細敘述,專注在元件使用

http://www.dotblogs.com.tw/yc421206/archive/2014/01/20/141712.aspx

http://www.dotblogs.com.tw/yc421206/archive/2014/02/20/144093.aspx

 


建立 POCO (DTO) class

{
    [Key]
    public int Id { get; set; }

    public string Name { get; set; }
}

 

加入 provider 組態設定



  

 

加入連線字串



  

 

完整組態檔如下

<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, 
Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="MySQL" providerName="Devart.Data.MySql" connectionString="Server=localhost;Database=demo;Uid=your id;Pwd=your password" />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <entityFramework>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="Devart.Data.MySql" type="Devart.Data.MySql.Entity.MySqlEntityProviderServices, Devart.Data.MySql.Entity" />
    </providers>
  </entityFramework>
</configuration>

 

 

建立 DbContext 類別

 

{
    public DbSet<Identity> Identities { get; set; }

    public MySqlDbContext()
        : base("MySQL")
    {
    }
}


最後,建立一個測試用的 Winform 專案,加入以下程式碼,即可完成

{
    MySqlDbContext ef = new MySqlDbContext();

    ef.Identities.Load();
    MessageBox.Show("OK");
}

 


有幾點需要再跟原廠確認

1.當 DB 不存在時,無法動態建立 DB?

2.可能它們自家軟體已經有支援,所以不支援EF Designer?

image


文章出自:http://www.dotblogs.com.tw/yc421206/archive/2014/03/24/144507.aspx

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo