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特性,来规避这个问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值