当前位置: 首页 > news >正文

EF6 CodeFirst使用MySql

如何使用EF CodeFirst连接MySql数据库?

环境:VS2015、Win7、.NetFramework4.5.2、MySql5.6

一、基本操作 

1、创建MVC5项目:ZmsoftsWebMvc。

2、通过NuGet包管理器安装:MySql.Data.EntityFramework

3. web.config添加连接字符串connectionStrings

<add name="default" connectionString="data source=.;initial catalog=zmdb;Trusted_Connection=True;" providerName="System.Data.SqlClient" />

4.创建一个dbcontext类

public class ZmDbContext : DbContext
    {
        public ZmDbContext() : base("default")
        {

        }  
        public virtual DbSet<User> Users { get; set; }

    }

5.使用Enable-Migrations 开启迁移,自动生成配置文件

二、MYSQL配置

1.基础配置

  A、下载MySQL for Visual Studio

  https://dev.mysql.com/downloads/windows/visualstudio/

  B、安装connector

  https://dev.mysql.com/downloads/connector/net/

  C、修改my.ini

  找到以下信息,前面如果没有加#,就补上。如果没有注释,会出现异常:Unknown storage engine 'InnoDb'

# skip-innodb
#loose-skip-innodb

 

2.程序配置

   A、修改web.config

  首先,修改connectionStrings;

  添加SslMode = none;,网上有的还加了port=3306;
 如果保存中文出现乱码,需要添加 Character Set=utf8;
<add name="default" connectionString="Server=localhost;Database=zmdb;Uid=root;Pwd=123456;SslMode = none;" providerName="MySql.Data.MySqlClient" />
  不添加SslMode = none;可能会出现异常:The provider did not return a ProviderManifestToken string. ---> MySql.Data.MySqlClient.MySqlException: The host localhost does not support SSL connections.

然后,修改DbProviderFactories
<system.data>
   <DbProviderFactories>
     <remove invariant="MySql.Data.MySqlClient" />
     <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" 
          type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.10.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
   </DbProviderFactories>
</system.data>

 

  B、修改ZmDbContext.cs文件

   [DbConfigurationType(typeof(MySqlEFConfiguration))]
    public class ZmDbContext : DbContext
    {
        ....
    }

  C、修改Configuration

 public Configuration()
        {
            AutomaticMigrationsEnabled = false;

            SetSqlGenerator("MySql.Data.MySqlClient", new MySqlMigrationSqlGenerator());//设置Sql生成器为Mysql的
        }

三、EF迁移

1.添加迁移文件

Add-Migration Init

2.迁移

Update-DataBase –verbose

 

目前遇到一个问题,在Configuration中Seed的初始化时,插入数据库乱码,路过的大神帮下忙

 

demo下载地址:https://gitee.com/zmsofts/XinCunShanNianDaiMa/blob/master/ZmsoftsMP.rar

 

参考文章:

https://www.cnblogs.com/kexxxfeng/p/5095812.html

https://www.cnblogs.com/alunchen/p/7188562.html

转载于:https://www.cnblogs.com/xcsn/p/9314563.html

相关文章:

  • java面试题干货96-125
  • 计算机专业的男女问题
  • 夕阳下,归校的背影
  • 小程序之map地图上不能在覆盖层
  • 大家好,我是新人,请多多关照,(*  ̄3)(ε ̄ *)么么
  • mangodb的存储
  • DICOM文件添加私有Tag(DCMTK Private Tag)
  • unity中NavMeshAgent有关知识
  • Linux C语言编程基本原理与实践
  • JavaScript开篇-写法分类
  • Selenium学习之==Css Selector使用方法
  • HashMap实现原理及源码分析
  • 语言分类
  • 冒泡排序实现
  • UAC 实现原理及绕过方法-打洞专用
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【5+】跨webview多页面 触发事件(二)
  • 345-反转字符串中的元音字母
  • 4. 路由到控制器 - Laravel从零开始教程
  • angular2开源库收集
  • java 多线程基础, 我觉得还是有必要看看的
  • Java 内存分配及垃圾回收机制初探
  • Making An Indicator With Pure CSS
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • node.js
  • Spring框架之我见(三)——IOC、AOP
  • Vue实战(四)登录/注册页的实现
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 分享几个不错的工具
  • 诡异!React stopPropagation失灵
  • 技术:超级实用的电脑小技巧
  • 简析gRPC client 连接管理
  • 类orAPI - 收藏集 - 掘金
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 如何用vue打造一个移动端音乐播放器
  • 软件开发学习的5大技巧,你知道吗?
  • 实现菜单下拉伸展折叠效果demo
  • 算法-图和图算法
  • 我这样减少了26.5M Java内存!
  • 与 ConTeXt MkIV 官方文档的接驳
  • 原生 js 实现移动端 Touch 滑动反弹
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • ​flutter 代码混淆
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $$$$GB2312-80区位编码表$$$$
  • (1)(1.9) MSP (version 4.2)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (Java)【深基9.例1】选举学生会
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二)JAVA使用POI操作excel
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)ssm高校社团管理系统 毕业设计 234162