EntityFramework实体框架—反向工程(实体类生成)

前言

    Entity Framework Core 是适用于 .NET 的新式对象数据库映射器。 它支持 LINQ 查询、更改跟踪、更新和架构迁移。 
 EF Core 适用于很多数据库,包括 SQL 数据库(本地和 Azure)、SQLite、MySQL、PostgreSQL 和 Azure Cosmos DB。

1. Entity Framework Core反向工程定义

EntityFramework Core 有基于实体类去生成数据库表 和 数据库表生成实体类两种工作机制。反向工程则是其中
的一种是基于数据库架构搭建**实体类型类**和 **DbContext 类基架**的过程

2.实现工作原理

    反向工程从读取数据库架构开始。 它会读取有关表、列、约束和索引的信息。
接下来,它将使用架构信息创建 EF Core 模型。 使用表创建实体类型;使用列创建属性;使用外键创建关系。 
最后,使用模型生成代码。  为相应实体类型类、Fluent API 和数据注释搭建基架,以便从应用重新创建相同的
模型。

3.准备工作

  (1-1)在NuGet包中安装  Microsoft.EntityFrameworkCore.Tools(使用Visual Studio时使用)
  (1-2)在NuGet包中安装  Microsoft.EntityFrameworkCore.Design(使用命令行接口CLI时使用)
  (2)在NuGet包中安装  Pomelo.EntityFrameworkCore.MySql (根据自己使用的数据库选择不同的插件)

链接: Microsoft.EntityFrameworkCore.Tools
链接: Pomelo.EntityFrameworkCore.MySql
在这里插入图片描述

4. 编写命令

EntityFramework Core 可以通过PMC 和CLI两种工具命令来执行命令
**PMC**: Scaffold-DbContext EF Core 包管理控制台命令
**CLI**: dotnet ef dbcontext scaffold .net 命令    

样例:[1]包管理控制台 [2]数据库为MySql [3] 使用的连接组件为 Pomelo.EntityFrameworkCore.MySql

 Scaffold-DbContext "host=127.0.0.1;port=3306;database=entityframeworktest;userid=root;password=root;" Pomelo.EntityFrameworkCore.MySql -ContextNamespace EntityFramework.Context -Namespace EntityFramework.Models -OutputDir Models

**参数解释:
(1) Scaffold-dbcontext(数据库上下文脚手架)指令来生成models和context
(2) "host=127.0.0.1;port=3306;database=entityframeworktest;userid=root;password=root;"为MySql的连接字符串,如果用别的数据库可以去查对应的数据库连接字符串
(3) "Pomelo.EntityFrameworkCore.MySql " 第二个参数是安装的数据库连接组件的名称,通常要与 NuGet 包名称相同
(4) “-Namespace EntityFramework” 为所有生成类的命名空间
(5) “-ContextNamespace” 仅覆盖 DbContext 类的命名空间
(6) “-OutputDir Models” 为类生成的输出目录

别的参数可以自行查看官方文档

数据库:在这里插入图片描述

Scaffold-DbContext EF Core 包管理控制台命令:在这里插入图片描述
生成出来的类和DbContext 类基架
生成出来的类

链接: EntityFramework原文

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值