EF連接MySQL核心


EF連接MySQL核心

  1. 引用MySql.Data.Entity相關的package
    • 最好通過NuGet添加。NuGet會將所有相關或依賴的包都引用到項目中,並且會直接配置web.config
  2. 設置DbContext的數據庫配置類型(EFConfiguration)

    • 有兩種方法:

      • 在代碼中使用特性
        [DbConfigurationType(typeof(MySqlEFConfiguration))]
      public class LoverCMDDbContext : DbContext
      {
      public LoverCMDDbContext() : base("LoverCMDDbContext")
      {

      }
      }
      • 在web.config中配置

        <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
        <contexts>
        <context type="LoverCMR.DAL.LoverCMDDbContext,LoverCMR">
        <databaseInitializer type="LoverCMR.DAL.LoverCMDInitializer,LoverCMR"></databaseInitializer>
        </context>
        </contexts>
        <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
        <!--<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />-->
        <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
        </providers>
        </entityFramework>
  3. 設置數據庫連接字符串

    <connectionStrings>
    <add name="LoverCMDDbContext" connectionString="Data Source=localhost;Port=3306;Initial Catalog=LoverCMD;User id=root;Password=123456;" providerName="MySql.Data.MySqlClient"/>
    </connectionStrings>

ps

  1. 什么時候開始創建數據庫的?
    • 答: 第一次查詢數據庫時,生成數據庫。注意,創建DbContext實例,並不會生成數據庫。
  2. 如何配置實例類型和mysql數據庫字段類型的映射?
    • 答:建議使用Fluent API方式。Data Annotation方式不符合解耦合的設計理念。
  3. 如果使用Data Annotation方式,特別需注意,默認情況下,實體類型string默認映射為數據庫longtext類型。可以指定MaxLength特性,來規避這個問題。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com