ef core与mysql_EF Core 2.0使用MsSql/Mysql实现DB First和Code First

本教程介绍了如何在ASP.NET Core 2.0项目中使用EF Core 2.0与MsSql和MySql数据库进行集成。通过NuGet包管理器安装必要的包,然后利用DB First方法从现有数据库创建模型,或使用Code First策略从模型生成数据库。详细步骤包括设置项目、安装包、生成数据库上下文、执行数据库迁移等。
摘要由CSDN通过智能技术生成

参考地址

环境

开始搭建

1、在 Visual Studio 2017 中创建新项目“文件”>“新建”>“项目”

从左侧菜单中选择“已安装”>“模板”>“Visual C#”>“.NET Core”。

选择“ASP.NET Core Web 应用程序”。

输入“EFGetStarted.AspNetCore.NewDb”作为名称,然后单击“确定”。

在“新建 ASP.NET Core Web 应用程序”对话框中:确保在下拉列表中选择“.NET Core”和“ASP.NET Core 2.0”选项

选择“Web 应用程序(模型视图控制器)”项目模板

确保将“身份验证”设置为“无身份验证”

单击“确定”

2、安装 Entity Framework Core工具”>“NuGet 包管理器”>“包管理器控制台”

MsSql

运行:Install-Package Microsoft.EntityFrameworkCore.SqlServer

MySql

运行:柚子:Install-Package Pomelo.EntityFrameworkCore.MySql

或者

官方:Install-Package MySql.Data.EntityFrameworkCore -Version 8.0.11

1.2、安装程序包管理器控制台

运行:Install-Package Microsoft.EntityFrameworkCore.Tools

1.3、安装设计包

运行:Install-Package Microsoft.EntityFrameworkCore.Design

数据据库提供程序设计包(EF Core 2.0 不再需要)

MsSql

运行:Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design

MySql

运行:Install-Package Pomelo.EntityFrameworkCore.MySql.Design

DB First——从现有数据库创建模型

MySql

运行:Scaffold-DbContext -Connection "Server=localhost;User Id=root;Password=123456;Database=vanfj" -Provider "Pomelo.EntityFrameworkCore.MySql" -OutputDir "Models"

MsSql

运行:Scaffold-DbContext -Connection "Server=localhost;User Id=root;Password=123456;Database=vanfj" -Provider "Microsoft.EntityFrameworkCore.SqlServer" -OutputDir "Models"

使用说明:将Connection中的连接字符串替换为自己的数据库连接,将OutputDir中的Models替换为自己要生成的文件目录名

Code First——从模型生成到数据库

1、创建模型

1.1、创建上下文

AAffA0nNPuCLAAAAAElFTkSuQmCC View Code

1.2、Startup文件注入上下文

EF Core在版本 2.0 中,引入了一种在依赖关系注入中注册自定义 DbContext 类型的新方法,即以透明形式引入可重用 DbContext 实例的池。

要使用 DbContext 池,请在服务注册期间使用 AddDbContextPool 而不是 AddDbContext

AAffA0nNPuCLAAAAAElFTkSuQmCC View Code

1.3、appsettings.json文件添加连接字符串

AAffA0nNPuCLAAAAAElFTkSuQmCC View Code

2、执行NuGet命令,创建数据库

2.1、为迁移搭建基架

运行:Add-Migration InitialCreate

2.2、将新迁移应用到数据库

运行:Update-Database

EF Core 2.0 NuGet命令

Get-Help about_EntityFrameworkCore 获取EF Core命令帮助

添加一个迁移数据库 迁移的名称 目录(及其子命名空间)路径是相对于项目目录。 默认值为"Migrations"。

Add-Migration -Name -OutputDir

Add-Migration InitialCreate 第一次执行初始化用这个

删除上次的迁移数据库 不检查以查看迁移是否已应用到数据库。

Remove-Migration -Force

目标迁移。 如果为"0",将恢复所有迁移。 默认到最后一个迁移。

Update-Database

Update-Database LastGoodMigration 还原迁移

删除数据库 显示的数据库会被丢弃,但没有删除它

Drop-Database -WhatIf

Get-DbContext 获取有关 DbContext 类型的信息

从数据库更新DbContext和实体的类型

Scaffold-DbContext

-Connection 数据库的连接字符串。

-Provider 要使用的提供程序。 (例如 Microsoft.EntityFrameworkCore.SqlServer)

-OutputDir 要将文件放入的目录。 路径是相对于项目目录。

--Context 若要生成的 dbcontext 名称。

-Schemas 要生成实体类型的表架构。

-Tables 要生成实体类型的表。

-DataAnnotations使用属性来配置该模型 (如果可能)。 如果省略,则使用仅 fluent API。

-UseDatabaseNames使用直接从数据库表和列名称。

-Force 覆盖现有文件。

从迁移中生成的 SQL 脚本

Script-Migration

-From 开始迁移。 默认值为 0 (初始数据库)

-To 结束的迁移。 默认到最后一个迁移

-Idempotent生成可以在任何迁移的数据库使用的脚本

-Output 要将结果写入的文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值