新建.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的更多相关文章

  1. ASP.NET Core使用EF Core操作MySql数据库

    ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上 使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql ...

  2. 以EF形式操作mysql数据库

    1.引入Nuget包: 2.书写EF操作上下文 public class MySqlContext:DbContext { protected override void OnConfiguring( ...

  3. Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

    这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...

  4. .net core使用ef core操作mysql数据库

    新建.net core webapi项目 在NuGet包管理器中搜索 MySql.Data.EntityFrameworkCore并安装,安装的8.0.14版本,只安装这一个就够了 安装后创建Data ...

  5. Vs使用EF来操作MySql(经验 )

    1.安装Vs2015,至少是2012以上版本才行 2. 安装 这个是用于连接Mysql数据库的Vs插件 2.1通过这种方式添加引用 3.配置数据库 // // // 4.添加实体 注:这里最好从数据库 ...

  6. [c/c++]linux下使用c/c++操作mysql

    首先需要安装相应的库文件,直接apt-get就可以. sudo apt-get install libmysqlclient-dev 编译的时候,需要额外链接到这个库.如果是apt-get安装的话,那 ...

  7. .NET Core 通过 Ef Core 操作 Mysql

    1.运行环境 开发工具:Visual Studio 2017 JDK版本:.NET Core 2.0 项目管理工具:nuget 2.GITHUB地址 https://github.com/nbfujx ...

  8. ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作

    前言: 本章主要通过一个完整的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行简单的CRUD操作,希望能够为刚入门.NET Core的小伙伴们提供一个完整的参考实例.关于 ...

  9. Code First操作Mysql数据库

    前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...

随机推荐

  1. python第十课——循环结构收尾

    2.4.time模块的初体验 sleep(sec)函数:程序一旦执行到sleep()函数,会立即休眠sec秒,等到时间到了,自动醒过来,然后继续往下执行... 思路步骤: 第一步:导入time模块 i ...

  2. 虚拟内存(VirtualAlloc),堆(HeapAlloc/malloc/new)和Memory Mapped File

    http://blog.csdn.net/zj510/article/details/39400087 内存管理有三种方式: 1. 虚拟内存,VirtualAlloc之类的函数 2. 堆,Heapxx ...

  3. amcharts属性

    Amcharts的特点包含: *动画或静态 *价值轴能够扭转 *线性或对数轴的价值尺度 *提前定义或定制的子弹 *定制描写叙述不论什么数据点 *点击栏目/酒吧(可用于钻孔下来图表) *梯度弥漫 *价值 ...

  4. Kubernetes中的资源调度与资源管理

    一.scheduling:把pod放到node上 1.最小调度单元:pod 2.1.8的版本后,最大支持5000个node 3.scheduling由两个部分组成: 3.1 Predicates:过滤 ...

  5. 有关linqtosql和EF的区别

    LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术.他们之间的本质区别在于EF对数据库架构和我们查询的类型实行了更好的解耦.使用EF,我们查询的对象不再 ...

  6. net::ERR_CONNECTION_RESET 报错原因

    1>  向tomcat 服务器上上传视频, 谷歌浏览器控制台报出: 打开信地址栏后 发现: net::ERR_CONNECTION_RESET 错误, 但是此视频以经过mp4转码(注: 浏览器支 ...

  7. MySQL无法存储Emoji表情问题

    数据插入的时候报错: 1366 - Incorrect string value: '\xF0\x9F\x98\x81' for column 'job' at row 23 解决办法: 1.修改配置 ...

  8. iOS裁剪,缩放图片白边问题解决办法

    几年没来了,感觉还是要写点啥,以后碰见问题 解决就写这吧,当是一个随时的笔记也好. iOS裁剪,缩放图片的代码网上也很多了,但是笔者出现了右边和下边出现白边的情况.出现白边的原因是给的size中的CG ...

  9. Yii2 查询条件

    Model::find() 字符串格式,例如:'status=1' 哈希格式,例如: ['status' => 1, 'type' => 2] 操作符格式,例如:['like', 'nam ...

  10. C语言常用知识点

    C语言条件预处理命令 /* 格式: #ifdef 标识符 程序1 #else 程序2 #endif 标识符已经定义时,程序段1才参加编译 应用:如调试版本,发行版本,便于调试 */ #include ...