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