1. 数据准备

新建类库项目——实体

NuGet安装:

  1. Microsoft.EntityFrameworkCore

新建类库项目——DbContext

NuGet安装:

  1. Microsoft.EntityFrameworkCore

    1. Pomelo.EntityFrameworkCore.MySql(对应数据库安装)

新建可执行项目——web、console

NuGet安装:

  1. Microsoft.EntityFrameworkCore.Tools

2. 数据库迁移

在数据库上下文项目(DbContext所在项目)中执行

  1. Add-Migration [Name] 生成数据库操作文件

  2. 执行数据库迁移

    1. 生产环境:Script-Migration
    2. 开发环境:Update-Database

3. 其他笔记

IOC注入MySQL配置:

"MySqlConnOptions": {
"Version": {
"Major": 5,
"Minor": 7,
"Build": 23
},
"Server": "wosperry.com.cn",
"Port": 8799,
"UserId": "wosperry",
"Password": "Aa123456.",
"Database": "sd_log"
}
/// <summary>
/// MySQL 配置
/// </summary>
public class MySqlConnOptions
{
public Version Version { get; set; }
public string Server { get; set; }
public int Port { get; set; }
public string Database { get; set; }
public string UserId { get; set; }
public string Password { get; set; }
}
/// <summary>
/// DI
/// </summary>
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MySqlConnOptions>(Configuration.GetSection("MySqlConnOptions"));
services.AddTransient<SdlContext>();
}
/// <summary>
/// 数据库访问上下文
/// </summary>
public class SdlContext : DbContext
{
#region 字段
private readonly IOptionsMonitor<MySqlConnOptions> _optionsMonitor;
#endregion #region 数据
public DbSet<Staff> Staff;
#endregion
/// <summary>
/// 拼接链接字符串
/// </summary>
private string ConnString => $"server={_optionsMonitor.CurrentValue.Server};" +
$"port={_optionsMonitor.CurrentValue.Port};" +
$"database={_optionsMonitor.CurrentValue.Database};" +
$"user id={_optionsMonitor.CurrentValue.UserId};" +
$"password={_optionsMonitor.CurrentValue.Password}";
public SdlContext(IOptionsMonitor<MySqlConnOptions> optionsMonitor)
{
_optionsMonitor = optionsMonitor;
} /// <summary>
/// 配置
/// </summary>
/// <param name="optionsBuilder"></param>
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseMySql(ConnString, new MySqlServerVersion(_optionsMonitor.CurrentValue.Version), mysqlOptions =>
{
mysqlOptions.CharSetBehavior(CharSetBehavior.NeverAppend);
})
.EnableSensitiveDataLogging()
.EnableDetailedErrors();
}
}
}

EFCore 开始的更多相关文章

  1. EFCore执行Sql语句的方法:FromSql与ExecuteSqlCommand

    前言 在EFCore中执行Sql语句的方法为:FromSql与ExecuteSqlCommand:在EF6中的为SqlQuery与ExecuteSqlCommand,而FromSql和SqlQuery ...

  2. 4.添加对efcore的支持 ,并使用mysql数据库。

    1.添加并加入 在project.json中添加 "tools": { "Microsoft.EntityFrameworkCore.Tools": " ...

  3. 让EFCore更疯狂些的扩展类库(一):通过json文件配置sql语句

    前言 EF通过linq和各种扩展方法,再加上实体模型,编写数据库的访问代码确实是优美.舒服,但是生成的sql不尽如意.性能低下,尤其是复杂些的逻辑关系,最终大家还是会回归自然,选择能够友好执行sql语 ...

  4. EFcore与动态模型

    在开发商城系统的时候,大家会遇到这样的需求,商城系统里支持多种商品类型,比如衣服,手机,首饰等,每一种产品类型都有自己独有的参数信息,比如衣服有颜色,首饰有材质等,大家可以上淘宝看一下就明白了.现在的 ...

  5. .net core web api + Autofac + EFCore 个人实践

    1.背景 去年时候,写过一篇<Vue2.0 + Element-UI + WebAPI实践:简易个人记账系统>,采用Asp.net Web API + Element-UI.当时主要是为了 ...

  6. DotNetCore跨平台~EFCore连接Mysql的方式

    回到目录 在.net frameworks的ef里连接mysql我们已经测试通过了,而在dotnet core里的efCore上去连接mysql我们需要测试一下,并且在测试过程中出现了一些问题,当然最 ...

  7. efcore 配置链接sqlserver 记录

    本文将在asp.net core api 项目中使用efcore corefirst模式 简单配置链接sqlserver数据库,以及简单的数据库迁移操作 一 新建项目 1. 首先我们先用vs2017 ...

  8. EFCore数据库迁移命令整理

    前言  因为现在用.net core 开发新项目,过程中需要经常涉及到数据命令的迁移,今天分别整EFCore 的两种迁移数据库的方式 1 程序包管理器控制台 , Package Manager Con ...

  9. Asp.Net Core Identity+EFCore + Mysql踩坑记录

    搭建基础框架准备试试传说中的Identity,本以为很顺利,结果一路踩了N多坑 遂就把过程记录下来.方便自己以后查看,也希望能帮到遇到同样问题的朋友. 1.首先,引入Identity需要的类库,还有M ...

  10. Mego开发文档 - 从EF6/EFCore迁移到Mego

    从EF6/EFCore迁移到Mego框架 如果您有EntityFragmework6或EntityFragmeworkCore的开发经验,在首次接触Mego框架时会发现这两个框架非常相似,本文将帮忙您 ...

随机推荐

  1. python验证码图片生成

    环境:win10(64位)+pycharm2018+pillow5.4+python3.7 对Django的跨站请求保护的有所了解的同学会知道{%csrf_token%}在实际上作用并不是那么大,只要 ...

  2. Vue__npm run build npm run dev

    npm run build npm run dev 一.以前一直错的做法 以前,git完项目之后就,执行1.npm install 2.npm run build 3.npm run dev.今天ma ...

  3. SQL_之 递归_START WITH id ='102' CONNECT BY PRIOR pid=id

    oracle 递归用法 SELECT * FROM menu START WITH id ='102' CONNECT BY PRIOR pid=id 一种应用 SELECT * FROM menu ...

  4. Nexus Repository Manager 3 远程命令执行漏洞(CVE-2020-10199、CVE-2020-10204)

    [影响版本] Nexus Repository Manager OSS/Pro 3.x <= 3.21.1 poc地址 https://github.com/magicming200/CVE-2 ...

  5. 🔥 LeetCode 热题 HOT 100(1-10)

    1. 两数之和 思路一:暴力遍历所有组合 class Solution { public int[] twoSum(int[] nums, int target) { for (int i = 0; ...

  6. wdlinux一键安装包

    下载安装(ssh登录服务器,执行如下操作即可,需要用到root用户权限来安装) v3版本已经发布,更多可看论坛 wdCP v3版本讨论区 更多安装请看 http://www.wdlinux.cn/bb ...

  7. 大数据学习(18)—— Flume介绍

    老规矩,学习新东西先上官网瞅瞅Apache Flume Flume是什么 Flume是一个分布式.可靠的大规模高效日志收集.汇聚和传输的这么一个服务.它的架构基于流式数据,配置简单灵活.它具备可调节的 ...

  8. Hadoop 3.1.1 - Yarn - 使用 GPU

    在 Yarn 上使用 GPU 前提 目前,Yarn 只支持 Nvidia GPU. YARN NodeManager 所在机器必须预先安装了 Nvidia 驱动器. 如果使用 Docker 作为容器的 ...

  9. unittest系统(八)一文搞定unittest重试功能

    在前面的介绍中,我们对unittest进行了分享介绍,那么在实际的应用中,因为客观原因需要对失败,错误的测试用例进行重试,所以呢,现有的unittest的框架无法满足,那么我们可以去改造下是否能够满足 ...

  10. 微信小程序测试点

    一.测试范围 1.权限测试 需要检查以下几种情况下微信用户访问的权限 1)未授权微信登录小程序 未授权时,一般使用一些业务功能的时候,都会弹出提醒:先授权再操作对应功能.or在提交数据到后台的时候,会 ...