.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的之前也 ...
随机推荐
- Linux下七牛云存储qrsync命令行上传同步工具
原址:https://m.aliyun.com/yunqi/ziliao/54370 VPS数据备份是一个重要的工作,之前在文章:使用七牛云存储自动备份VPS数据分享过使用七牛云存储提供的工具QRSB ...
- loli的搜索测试-4
其实这已经是第四次搜索测试了...只不过上两次测试时我不在学校,扔两个链接吧: 测试-2:https://www.luogu.org/blog/user35178/loli-di-sou-suo-ce ...
- BZOJ2729:[HNOI2012]排队(组合数学)
Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不 ...
- BZOJ3786:星系探索(Splay,括号序)
Description 物理学家小C的研究正遇到某个瓶颈. 他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其余的所有星球均有且仅有一个依赖星球.主星球 ...
- Python自动化之session反解案例
session反解案例 from django.contrib.sessions.models import Session sess = Session.objects.get(pk='a92d67 ...
- bat取时间间隔
@echo off echo 现在时间是%time:~,%点%time:~,%分%time:~,%秒 ,%%time:~,%%time:~,% pause echo 现在时间是%time:~,%点%t ...
- Linux Shell常用技巧(六)
十二. 行的排序命令sort: 1. sort命令行选项: 选项 描述 -t 字段之间的分隔符 -f 基于字符排序时忽略大小写 -k 定义排序的域字段,或者是基于域字段的部分数据进行排序 - ...
- 网络编程中的read,write函数
关于TCP/IP协议,建议参考Richard Stevens的<TCP/IP Illustrated,vol1>(TCP/IP详解卷1). 关于第二层面,依然建议Richard Steve ...
- SharePoint中跨列表查询
1,最近的项目中遇到一个需求,站点中有几十个列表,其中每5,6个列表属于一个模块下的.客户的需求是,首页上显示一个模块下所有列表数据的前5条,并按创建时间排序. 2,刚刚考虑到这块的实现方法时,用的是 ...
- redis 基本数据类型-列表(List)
今天不瘦给大家分享一下redis第二个基本数据类型:列表.如果大家了解基本数据结构,相信大家对列表不会陌生,比如在C语言中我们可以使用数组实现一个列表,也可以使用链表实现一个列表(列表链表傻傻分不清楚 ...