.NetCore下使用EF DbFirst操作MySql
新建.NetCore的控制台项目

使用Nuget安装Pomelo.entityframeworkcore.mysql

工程右键--->编辑.csproj文件,把以下内容写入到工程文件
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.1" />
</ItemGroup>
修改后工程文件如下
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup> <ItemGroup>
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.1.1" />
<PackageReference Include="Snowflake.NetCore" Version="1.0.0" />
</ItemGroup> <ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.1" />
</ItemGroup> </Project>
打开命令行,cd到项目根目录(.csproj所在目录)下,执行如下命令:
dotnet ef dbcontext scaffold "server=localhost;uid=root;pwd=123456;port=3306;database=document;" "Pomelo.EntityFrameworkCore.MySql"-o EF -f
参数说明
-o 输出目录(-OutputDir)
-f 覆盖现有文件(-Force),数据库更新时会用到
-t 指定表名(-Tables)
如果中间出错,请先确保你的工程文件可以编译成功,并使用-f参数覆盖现有文件
执行成功后就可以看到相应的Context和model了。
对于生成的文件,我们不作任何修改,以免更新时造成冲突。
创建我们自己的ContextConfig类
using Microsoft.EntityFrameworkCore; namespace EF2MySqlDBFirst.EF
{
public class DataBaseContextConfig
{
private const string LightConnectionString = "server=localhost;userid=root;pwd=123456;port=3306;database=light;";
private const string LogConnectionString = "server=localhost;userid=root;pwd=123456;port=3306;database=log;";
/// <summary>
/// 创建Light数据库上下文
/// </summary>
/// <returns></returns>
public static lightContext CreateLightContext()
{
var optionBuilder = new DbContextOptionsBuilder<lightContext>();
optionBuilder.UseMySql(LightConnectionString);
var context = new lightContext(optionBuilder.Options);
return context;
}
/// <summary>
/// 创建log数据库上下文
/// </summary>
/// <returns></returns>
public static logContext CreateLogContext()
{
var optionBuilder = new DbContextOptionsBuilder<logContext>();
optionBuilder.UseMySql(LogConnectionString);
var context = new logContext(optionBuilder.Options);
return context;
} }
}
这样使用context对象时,用我们自己生成的类的CreateContex方法创建,保证数据库更新时重新生成的代码对我们的程序没有影响。
测试
static void Main(string[] args)
{
using (var context = DataBaseContextConfig.CreateLightContext())
{
context.User.Add(new User
{
Age = ,
CreateTime = DateTime.Now,
UserName = "zisi",
UserId = new IdWorker(, ).NextId(),
Status = ,
}); context.SaveChanges();
Console.WriteLine("New date:" + context.User.OrderByDescending(u => u.UserId).FirstOrDefault().CreateTime);
}
Console.WriteLine("press enter to exit!");
Console.ReadLine();
}

.NetCore下使用EF DbFirst操作MySql的更多相关文章
- ASP.NET Core使用EF Core操作MySql数据库
ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上 使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql ...
- 以EF形式操作mysql数据库
1.引入Nuget包: 2.书写EF操作上下文 public class MySqlContext:DbContext { protected override void OnConfiguring( ...
- Windows下安装MySQLdb, Python操作MySQL数据库的增删改查
这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...
- .net core使用ef core操作mysql数据库
新建.net core webapi项目 在NuGet包管理器中搜索 MySql.Data.EntityFrameworkCore并安装,安装的8.0.14版本,只安装这一个就够了 安装后创建Data ...
- Vs使用EF来操作MySql(经验 )
1.安装Vs2015,至少是2012以上版本才行 2. 安装 这个是用于连接Mysql数据库的Vs插件 2.1通过这种方式添加引用 3.配置数据库 // // // 4.添加实体 注:这里最好从数据库 ...
- [c/c++]linux下使用c/c++操作mysql
首先需要安装相应的库文件,直接apt-get就可以. sudo apt-get install libmysqlclient-dev 编译的时候,需要额外链接到这个库.如果是apt-get安装的话,那 ...
- .NET Core 通过 Ef Core 操作 Mysql
1.运行环境 开发工具:Visual Studio 2017 JDK版本:.NET Core 2.0 项目管理工具:nuget 2.GITHUB地址 https://github.com/nbfujx ...
- ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作
前言: 本章主要通过一个完整的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行简单的CRUD操作,希望能够为刚入门.NET Core的小伙伴们提供一个完整的参考实例.关于 ...
- Code First操作Mysql数据库
前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...
随机推荐
- Jython的应用
今天本文围绕主要内容是jython是什么.安装.简单实用. 另外说说我为什么研究jython,研究它是有一个目的的,目的是将python代码转化为jar包以供安卓方面那边人脸识别,虽说目前人脸识别像阿 ...
- Jenkins+github的一次定时构建示例
首先说明,我的电脑环境是windows,所以以下的示例是基于windows10 X64. 一.新建任务,填写名称,选择类型,点击左下角的[确定] 二.配置 1.General 2.源码管理 之前在gi ...
- 【转】C++三大特性
又重新看了一个多月的书,也算是基本上了解了一些很基础的东西,学习C++就得掌握它所具备的三大特性. 封装性是基础,继承性是关键,多态性是补充,并且多态性存在于继承的环境中. 封装性 C++语言中支持数 ...
- iOS使用NSMutableAttributedString实现富文本小结
NSAttributedString NSAttributedString对象管理适用于字符串中单个字符或字符范围的字符串和关联的属性集(例如字体和字距).NSAttributedString对象的默 ...
- Linux服务-ftp
目录 1. ftp简介 2. ftp架构 3. ftp数据连接模式 4. 用户认证 5. vsftpd 5.1 vsftpd安装 5.2 vsftpd配置 5.3 vsftpd实验配置 5.3.1 安 ...
- day 87 Vue学习六之axios、vuex、脚手架中组件传值
本节目录 一 axios的使用 二 vuex的使用 三 组件传值 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 axios的使用 Axios 是一个基于 promise 的 HT ...
- Linux的信号解释
转自:http://blog.csdn.net/yusiguyuan/article/details/43272225 整理后: 信号signal unix系统中,用信号实现软件中断 子进程结束-&g ...
- 【转】CSDN离线网页html文件自动跳转
问题: 最近使用OneNote2016剪辑csdn的文章时,发现一些公式/文本框不能被正确识别,所以离线保存网页的html文件. 但是每次打开html文件,都会自动跳转的CSDN主页,即使断网,也会自 ...
- 20155207王雪纯 Exp2 后门原理与实践
20155207王雪纯 Exp2 后门原理与实践 实验步骤 一.windows获取Linux shell Windows:使用 ipconfig 命令查看当前机器IP地址. 进入ncat所在文件地址, ...
- 20155305mypwd的实现和测试
20155305mypwd的实现和测试 pwd命令及其功能 命令格式: pwd 命令功能: 查看"当前工作目录"的完整路径 常用参数: 一般情况下不带任何参数 作业mypwd代码实 ...