DotNet Core 2.0使用MySql实现Code First
本教程使用vs2017 + dotnet core2.0 + MySql5.7.19
1.打开vs2017,文件》新建》项目,选择Asp.Net Core Web应用程序。
2.项目名称可以写Test,新建的模板选择.net core 2.0的Web应用程序。如下图:

3.在项目根目录下新建一个Models文件夹。
4.在Models文件夹下新建一个User类。
public class User
{
public int Id { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}
5.在Models文件夹下新建一个DataContext类。
//using Microsoft.EntityFrameworkCore;
public class DataContext:DbContext
{
public DataContext(DbContextOptions<DataContext> options):base(options)
{
}
public DbSet<User> Users { get; set; }
}
6.通过Nuget添加Pomelo.EntityFrameworkCore.MySql。
7.修改Startup.cs文件,用于Code First创建数据库。这里可以有两种方法,依次来说。
7.1直接将数据库连接字符串硬编码在Startup.cs文件中
//using Microsoft.EntityFrameworkCore;
//using Test.Models; public void ConfigureServices(IServiceCollection services)
{
var connection = @"Data Source=.;Database=Test;User ID=young;Password=young;pooling=true;CharSet=utf8;port=3306;sslmode=none";
services.AddDbContext<DataContext>(options => options.UseMySql(connection));
services.AddMvc();
}
7.2将数据库连接字符串放在配置文件中
在appsettings.json中添加节点,代码如下:
"ConnectionStrings": {
"MySqlConnection": "Data Source=.;Database=Test;User ID=young;Password=young;pooling=true;CharSet=utf8;port=3306;sslmode=none"
}
Startup.cs文件中的代码修改如下:
//using Microsoft.EntityFrameworkCore;
//using Test.Models; public void ConfigureServices(IServiceCollection services)
{
var connection = Configuration.GetConnectionString("MySqlConnection");
services.AddDbContext<DataContext>(options => options.UseMySql(connection));
services.AddMvc();
}
8.依次点开:工具》打开Nuget包管理器》程序包管理控制台。
首先输入Add-Migration MyFirstMigration执行;
接着输入Update-Database执行。出现Done表示成功创建数据库。
遇到的问题:
发现通过code first创建的数据库居然不支持插入中文?
后来才发现是mysql的配置问题(我是使用ubuntu+mysql)。在/etc/mysql/my.cnf中做如下修改,添加以下红框内的文字:

为了方便复制粘贴,代码就直接贴出来:
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
重启mysql,sudo service mysql restart即可。
对问题进一步升级——让数据库支持emoji表情
DotNet Core 2.0使用MySql实现Code First的更多相关文章
- .Net Core 3.0 WebAPI && MySQL 8.0搭建详情
微软在2019年9月24日发布了dotNet Core 3.0和C# 8.0,添加了许多新Features,详情点我.无疑dotNet Core 3.0和一个月之后即将发布的dotNet Core 3 ...
- DotNet Core 1.0 集成 CentOS 开发与运行环境部署
一. DotNet Core 1.0 开发环境部署 操作系统安装 我们使用CentOS 7.2.1511版本. 安装libunwind库 执行:sudo yum install libunwi ...
- 北京时间28号0点以后Scott Hanselman同志台宣布dotnet core 1.0 rtm
今日占住微信号头条的好消息<终于来了!微软.Net Core 1.0下载放出>.本人立马跑到官网http://dot.net看了一下,仍然是.net core 1.0 Preview 1版 ...
- centos 7 && dotnet core 2.0 && nginx && supervisor
前提 系统:centos 7 目录:/home/wwwroot/www.wuball.com dotnet core 2.0 官方指引 sudo rpm --import https://packag ...
- dotnet core 3.0 linux 部署小贴士
dotnet core 3.0 目前还是测试版,在linux下安装 sdk 需要有一些注意事项 1.下载url https://dotnet.microsoft.com/download/thank- ...
- ASP.NET Core 3.0 WebApi 系列【2】.Net Core 3.0+ CodeFirst + MySql 实现数据的迁移
写在前面 在前一小节中,我们创建了基于RESFULL风格的服务.这个小节,尝试使用CodeFirst+MySql 的方式实现数据迁移. 一.开发环境 [1]运行环境:win10 家庭版 [2]开发工具 ...
- dotnet Core 2.0学习笔记(一)
一:Dotnet Core Windows运行环境,标红部分要注意 https://docs.microsoft.com/en-us/dotnet/core/windows-prerequisites ...
- dotnet core 3.0 swagger 显示枚举描述
上一篇net core 2.2 swagger的枚举描述,core 3.0 需要升级swagger到5.0rc版,配置需要做些修改,swaager启用了OpenApi标准,之前的枚举描述方法也失效了. ...
- dotnet core 2.0在ubuntu下安装失败
在ubuntu下安装.net core2.0失败了,不知道是什么原因.按照微软官方的步骤.似乎走不通.偶然翻到debian的安装方法,发现debian系统居然是直接下载包安装的.没经过apt.尝试一把 ...
随机推荐
- PHP格式化金钱函数
实现目的: 对数字进行格式化,以类似¥10,000,000的格式输出. 实现方法: function doFormatMoney($money){ $tmp_money = strrev($money ...
- Hbulider 支持less保存自动编译
设置less配置:文件写 .less,路径找lessc.cmd,找不到就下载,命令参数写:%FileName% %FileBaseName%.css这样以后就可以less文件自动生成css了!
- windows系统上安装与使用Android NDK r8d(二)
四. 在eclipse中集成c/c++开发环境 1. 装Eclipse的C/C++环境插件:CDT,这里选择在线安装. 首先登录http://www.eclipse.or ...
- client怎样调用IBinder接口对象
代码: public void funclick(View view){ Intent _intent = new Intent(MainActivity.this,MyService.class); ...
- MySQL数据库的概念
学习数据库的一些知识.写写博客方便梳理以及巩固知识. 关于什么是数据库就举一个样例来说明,说的可能不够准确,仅仅要明确一个大概的意思就够了.深刻的学习还是要去看书的. 讲讲生活中有关数据的样例:在一个 ...
- easyui icon的使用相关
easyui的默认图标有以下这些: .icon-blank{ background:url('icons/blank.gif') no-repeat; } .icon-add{ background: ...
- nose的测试报告
有时候我们要让报告整洁美观点,以html展示测试结果,我们可以借助pip install nosehtmloutput插件输出html格式报告 from nose.plugins.plugintest ...
- [Windows]_[删除非空文件夹的注意要点]
场景: 1. 有时候程序须要生成一些暂时文件夹和暂时文件,在程序退出时须要删除,这时候用win32的api就可以完毕需求.自己遍历文件夹一个个removefile并非高效率的做法. //注意: //1 ...
- Android系统信息获取
在Android中可以通过android.os.Build这个类和System.getProperty(“xxx”);来获取设备信息,下面列举的常见设备信息摘自Android群英传 Build.BOA ...
- django基础复习
Django - 路由系统 url.py - 视图函数 views.py - 数据库操作 models.py - 模板引擎渲染 - HttpReponse(字符串) - render(request, ...