EFCore 开始
1. 数据准备
新建类库项目——实体
NuGet安装:
- Microsoft.EntityFrameworkCore
新建类库项目——DbContext
NuGet安装:
Microsoft.EntityFrameworkCore
- Pomelo.EntityFrameworkCore.MySql(对应数据库安装)
新建可执行项目——web、console
NuGet安装:
- Microsoft.EntityFrameworkCore.Tools
2. 数据库迁移
在数据库上下文项目(DbContext所在项目)中执行
Add-Migration [Name] 生成数据库操作文件
执行数据库迁移
- 生产环境:Script-Migration
- 开发环境: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 开始的更多相关文章
- EFCore执行Sql语句的方法:FromSql与ExecuteSqlCommand
前言 在EFCore中执行Sql语句的方法为:FromSql与ExecuteSqlCommand:在EF6中的为SqlQuery与ExecuteSqlCommand,而FromSql和SqlQuery ...
- 4.添加对efcore的支持 ,并使用mysql数据库。
1.添加并加入 在project.json中添加 "tools": { "Microsoft.EntityFrameworkCore.Tools": " ...
- 让EFCore更疯狂些的扩展类库(一):通过json文件配置sql语句
前言 EF通过linq和各种扩展方法,再加上实体模型,编写数据库的访问代码确实是优美.舒服,但是生成的sql不尽如意.性能低下,尤其是复杂些的逻辑关系,最终大家还是会回归自然,选择能够友好执行sql语 ...
- EFcore与动态模型
在开发商城系统的时候,大家会遇到这样的需求,商城系统里支持多种商品类型,比如衣服,手机,首饰等,每一种产品类型都有自己独有的参数信息,比如衣服有颜色,首饰有材质等,大家可以上淘宝看一下就明白了.现在的 ...
- .net core web api + Autofac + EFCore 个人实践
1.背景 去年时候,写过一篇<Vue2.0 + Element-UI + WebAPI实践:简易个人记账系统>,采用Asp.net Web API + Element-UI.当时主要是为了 ...
- DotNetCore跨平台~EFCore连接Mysql的方式
回到目录 在.net frameworks的ef里连接mysql我们已经测试通过了,而在dotnet core里的efCore上去连接mysql我们需要测试一下,并且在测试过程中出现了一些问题,当然最 ...
- efcore 配置链接sqlserver 记录
本文将在asp.net core api 项目中使用efcore corefirst模式 简单配置链接sqlserver数据库,以及简单的数据库迁移操作 一 新建项目 1. 首先我们先用vs2017 ...
- EFCore数据库迁移命令整理
前言 因为现在用.net core 开发新项目,过程中需要经常涉及到数据命令的迁移,今天分别整EFCore 的两种迁移数据库的方式 1 程序包管理器控制台 , Package Manager Con ...
- Asp.Net Core Identity+EFCore + Mysql踩坑记录
搭建基础框架准备试试传说中的Identity,本以为很顺利,结果一路踩了N多坑 遂就把过程记录下来.方便自己以后查看,也希望能帮到遇到同样问题的朋友. 1.首先,引入Identity需要的类库,还有M ...
- Mego开发文档 - 从EF6/EFCore迁移到Mego
从EF6/EFCore迁移到Mego框架 如果您有EntityFragmework6或EntityFragmeworkCore的开发经验,在首次接触Mego框架时会发现这两个框架非常相似,本文将帮忙您 ...
随机推荐
- 用postman进行web端自动化测试
概括说一下,web接口自动化测试就是模拟人的操作来进行功能自动化,主要用来跑通业务流程. 主要有两种请求方式:post和get,get请求一般用来查看网页信息:post请求一般用来更改请求参数,查看结 ...
- Java 在线/离线 文档
英文: Oracle 官网在线文档 Java SE 8 Oracle 官网在线文档 Java SE 9 & JDK 9 中文: Java 1.8: 中文 – 谷歌版 中文 – 有道版 中文 – ...
- idea创建普通Web项目lib目录无法输出,tomcat不报错问题
idea创建普通Web项目lib目录无法输出,tomcat不报错问题 idea版本:2021.2 tomcat版本:9.0.50 项目结构 创建一个普普通通的web项目,目录结构大概就是这样 . ├─ ...
- MFC对文件文件夹转移、删除、重命名、复制【转】
HFileOperation()函数主要对文件夹有四种操作:复制,删除,移动,重命名. 写了四个函数.可以很好的对文件夹进行操作. //函数名:MoveFolder //参数:lpszFromPath ...
- Windows 系统安装 git基础小白的简单操作包含基本输入命令
首先 去官网下载git应用 https://git-scm.com/downloads 点击前往 安装的操作也比较简单,一直点击下一步 安装完成之后 在空白桌面点击是否有 Git Gui ...
- 『go成长之路』 defer 作用、典型用法以及多个defer调用顺序,附加defer避坑点,拿来吧你
预习内容 defer 的作用有哪些? 多个 defer 的执行顺序是怎样的? defer,return,函数返回值 三者之间的执行顺序 defer的作用 go中的defer是延迟函数,一般是用于释放资 ...
- AI+云原生,把卫星遥感虐的死去活来
摘要:遥感影像,作为地球自拍照,能够从更广阔的视角,为人们提供更多维度的辅助信息,来帮助人类感知自然资源.农林水利.交通灾害等多领域信息. 本文分享自华为云社区<AI+云原生,把卫星遥感虐的死去 ...
- VLAN-4 单臂路由实现vlan之间路由
一.实验拓扑图 二.实验编址 三.实验步骤 1.给对应的PC设置对应的IP和掩码还有接口,以及根据需要划分不同的vlan区域,再用文本标记出不同部门. 2. 启动设备(全选) 3.创建vlan并配置a ...
- 004 PCI Express体系结构(四)
一.PCI总线的中断机制 PCI总线使用INTA#.INTB#.INTC#和INTD#信号向处理器发出中断请求.这些中断请求信号为低电平有效,并与处理器的中断控制器连接.在PCI体系结构中,这些中断信 ...
- CF1264D2 Beautiful Bracket Sequence
我们枚举每两个字符的空档,统计一个空档左边有 \(l\) 个左括号, 右边有 \(r\) 个右括号,左边有 \(u\) 个问号,右边有 \(v\) 个问号. 则对于 \(p\) 的答案 \(ans_p ...