EntityFramework+MySql数据库(code first方式)

(学习大佬tkbSimplest的CodeFirst开发系列)

一、安装MySQL 8.0.13

  1. 系统WIN7 SP1
  2. 在MySQL官网下载mysql-installer-community-8.0.13.0.msi
  3. MySQL for Visual Studio 1.2.8版本安装失败回滚,只安装1.0.2版本

    二、Visual Studio

  4. 已有VS2010
  5. MySQL.Data依赖Google.Protobuf,Google.Protobuf依赖.Net 4.5以上,VS2010 不支持.Net 4.5,重新安装VS2015
  6. 从NuGet安装两个包:MySql.Data和MySql.Data.Entity
  7. 新建Donator、Context类:
public class Donator
    {
        public int DonatorId { get; set; }
        public string Name { get; set; }
        public decimal Amount { get; set; }
        public DateTime DonateDate { get; set; }
    }

     [DbConfigurationType(typeof(MySql.Data.EntityFramework.MySqlEFConfiguration))]
    public class Context : DbContext
    {
        public Context()
            : base("name=CodeFirst")
        ///调用了父类的构造函数,并且传入了一个键值对,键是name,值是CodeFirst,这个键值对是定义在应用程序的配置文件中的
        {
        }
        public DbSet<Donator> Donators { get; set; }
    }
  1. 测试:
class Program
    {
        static void Main(string[] args)
        {
            using (var context = new Context())
            {
                context.Database.CreateIfNotExists();//如果数据库不存在时则创建
                context.Donators.Add(
                    new Donator
                    {
                        DonatorId = 1,
                        Name = "Niu",
                        Amount = 50,
                        DonateDate = DateTime.Now
                    });
                context.SaveChanges();
            }
            Console.Write("DB has Created!");//提示DB创建成功
            Console.Read();
        }
  1. App.config添加:
<connectionStrings>
    <add name="CodeFirst" connectionString="Data Source=localhost;port=3306;Initial Catalog=CodeFirst;user id=root;password=root;" providerName="MySql.Data.MySqlClient" />
  </connectionStrings>

运行:

‘MySql.Data.Entity.EFMySqlCommand.set_DbConnection(System.Data.Common.DbConnection)‘ to access method ‘MySql.Data.MySqlClient.MySqlConnection.get_Settings()‘ failed."

呃。。。百度半天各种修改,卒。Google一下

Oracle renamed the package to MySql.Data.EntityFramework for v8.x. You need to uninstall MySql.Data.Entity and install MySql.Data.EntityFramework.
  1. NuGet卸载MySql.Data.Entity,安装MySql.Data.EntityFramework
  2. 运行:

附:

Navicat连接Mysql 8.0.13报错:Client does not support authentication protocol requested by server;
打开MySQL 8.0 Command Line Client,命令:
1. use mysql;
2. alter user ‘root‘@‘localhost‘ identified with mysql_native_password by ‘自个的密码‘;
3. flush privileges;

原文地址:https://www.cnblogs.com/SurroundSea/p/9897085.html

时间: 2024-11-05 16:39:40

EntityFramework+MySql数据库(code first方式)的相关文章

?ECharts中BasicLine图+将mysql数据库中的方式通过echarts可视化

ECharts官网示例: 1 option = { 2 xAxis: { 3 type: 'category', 4 data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] 5 }, 6 yAxis: { 7 type: 'value' 8 }, 9 series: [{ 10 data: [820, 932, 901, 934, 1290, 1330, 1320], 11 type: 'line' 12 }] 13 }; View Cod

如何选择MySQL数据库的安装方式

 MySQL数据库安装有yum安装,rpm安装,二进制编译安装,cmake,或者make安装,但是选择什么样的安装方式则全看实际应用场景. 下为网友总结安装方式选择:   若是对数据库要求不太高的场景,可以采用yum/rpm方式安装MySQL,例如并发不大,只是在公司内部(wiki系统).企业内部的应用(Zabbix监控系统,OpenStack后台管理)等需要数据库的一些应用场景,当然,生产场景下也是可以选择yum或rpm方式进行安装的. 但是,有很多大型网站或门户网站,往往在安装MySQL时,

【php】Apache无法自己主动跳转却显示文件夹与php无法连接mysql数据库的解决方式

一.Apache无法自己主动跳转却显示文件夹 Apache无法自己主动跳转却显示文件夹这是由于Apacheserver下conf/httpd.conf没有配置好,其默认是不跳转,直接显示文件夹 首先,我们须要禁止Apache直接显示文件夹. 方法在搜索Options Indexes FollowSymLinks,将其该为Options FollowSymLinks 事实上.解决Apache无法自己主动跳转的问题.这是由于Apache本来仅仅是一个httpserver.不会自己主动跳转到index

Python 3.5 连接Mysql数据库(pymysql 方式)

由于 MySQLdb 模块还不支持 Python3.x,官方的Mysql连接包只支持到3.4,所以 Python3.5 如果想连接MySQL需要安装 pymysql 模块. pymysql 模块可以通过 pip 安装. 由于Python统一了数据库连接的接口,所以 pymysql 和 MySQLdb 在使用方式上是类似的: pymysql.Connect()参数说明 host(str): MySQL服务器地址 port(int): MySQL服务器端口号 user(str): 用户名 passw

Mysql数据库之三:数据库术语和客户端登陆

在安装好数据库之后,我们需要对它的一些基本概念做些了解,如前所述:数据库是由多个有关联的表所组成.那么在这个表中包括如行.列.主键.外键.索引等. 数据库:有关联的表的集合. 数据表:表是数据的矩阵,库中的表可以看成是一张电子表格. 列:一列包含了性质相同的数据,如年龄,电话号码. 行:一组相关的数据,也称一条数据记录. 主键:主键是唯一的,一张数据表中只能包含一个主键,具有唯一性.可以使用主键来查询数据. 外键:主要用于关联两张表. 索引:使用索引可以快速查询数据表中的记录,类似书的目录. M

CAS单点登录之mysql数据库用户验证及常见问题

前面已经介绍了CAS服务器的搭建,详情见:搭建CAS单点登录服务器.然而前面只是简单地介绍了服务器的搭建,其验证方式是原始的配置文件的方式,这显然不能满足日常的需求.下面介绍下通过mysql数据库认证的方式. 一.CAS认证之mysql数据库认证 1.在mysql中新建一个cas数据库并创建user表 CREATE DATABASE /*!32312 IF NOT EXISTS*/`cas` /*!40100 DEFAULT CHARACTER SET gbk */; USE `cas`; /*

MySQL数据库中字符集的问题

今天在做Hibernate案例,往mysql中写记录的时候,出现ERROR: Incorrect string value: '\xE5\x8A\xA0\xE5\x86\x85...' for column 'content' at row 1 后来发现在程序中写的字符串编码采用的是utf-8,但是由于我是通过非安装方式装的mysql,没有设置数据库默认的码表,所以数据库默认的码表不是utf-8,而是latin1: 找到原因后通过修改数据库码表的方式问题解决,成功向数据库存入记录.下面通过查看网

解决mysql数据库在web开发中的乱码问题

首先,出现的乱码的原因在于编码方式不统一,主要是mysql数据库的编码方式和web项目的编码方式,只有遵循了编码方式统一的原则,才能避免产生乱码问题. 通常项目中使用的都是UTF-8编码,因此,我们在新建数据库时,要设置默认编码方式为UTF-8,具体步骤如下: 一.Windows环境下的mysql配置: 进入mysql安装目录,找到my.ini或者是my-default.ini文件,在[mysqld]和[client]后面增加"default-character-set=utf8",设

MySQL数据库基本语句

MySQL数据库系统是一个典型的C/S(客户端/服务器)架构的应用,要访问MySQL数据库需要使用专门的客户端软件.在Linux系统中,最简单.易用的MySQL客户端软件是其自带的mysql命令工具. 通过CentOS 7 编译安装MySQL数据库系统可以了解并掌握MySQL数据库的安装方式,作为一名合格的运维工程师,MySQL数据库的基本操作也是必须要掌握的. MySQL是一套数据库管理系统,在每台MySQL服务器中,均支持运行多个库,每个库相当于一个容器,存放着许多表,表中的每行记录包含一条