.NET6.0 EF Core 之 DB First生成实体类

EF Core可以使用DB First模式生成实体类具体步骤如下:

1.添加EF Core支持程序包

因为.NET Core中默认不包含EF Core的工具和程序包,需要通过NuGet管理器安装对应的工具和程序包,这里使用SQL Server数据库。

Microsoft.EntityFrameworkCore.SqlServer:SQL Server数据库EF提供程序
Microsoft.EntityFrameworkCore.Design:设计时使用到的EF共享库
Microsoft.EntityFrameworkCore.Tools:EF的NuGet包管理器命令工具

也可以调出【程序包管理控制台】(位置:工具->NuGet 包管理器->程序包管理控制台),选择【默认项目】,输入以下命令安装依赖

Install-package Microsoft.EntityFrameworkCore.Tools
Install-package Microsoft.EntityFrameworkCore.Design
Install-package Microsoft.EntityFrameworkCore.SqlServer

 2.通过数据库生成Model

调出【程序包管理控制台】,选择项目,输入以下命令将数据库中所有表生成Model

Scaffold-DbContext 'Data Source=.;Initial Catalog=DB;integrated security=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context DBContext

DB:数据库名称

DBContext:数据上下文名称

后续如数据库新增或删减表,在命令后加-Force 

Scaffold-DbContext 'Data Source=.;Initial Catalog=DB;integrated security=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context DBContext -Force

 3.连接字符串写入配置文件

在appsettings.json文件中配置连接字符串

"ConnectionStrings": {
    "DBEquipment": "Data Source=.;Initial Catalog=DB;integrated security=True;"
  }

 4.在Program类中添加数据上下文对象依赖注入服务,并从appsettings.json文件中读取连接字符串配置

using Microsoft.EntityFrameworkCore;

builder.Services.AddDbContext<DBContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DBEquipment")));

 5.在Controllers文件夹中创建一个控制器,在该类的构造方法中获取依赖注入的数据上下文对象

private readonly ShopContext _context;

public EquipmentsController(ShopContext context)
{
    _context = context;
}
C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为 C#.Net 数据库程序员开发量身定做的自动代码生成工具,所生成的代码基于面向对象的思想、分层架构设计及ORM,并参考了微软Petshop中经典的思想,融入了工厂模式等设计模式,反射机制等。从数据库中提取表对应的C#实体代码,目前支持Oracle、SqlServer数据库,并可从对应类型的数据库中提取表及字段的注释,并可对生成的实体数据类型等进行各种自定义的设置等。如数据库列和C#代码类型的映射、实体命名空间、代码个性化注释、是否生成对应的数据库操作等,操作简单实用。同时通过实体可实现简单数据库添加、修改、删除、查询等操作,同时对添加和修改提供一个统一的保存操作(即实体会根据主键或实体条件值自动判断是更新还是插入);并提供大量的相关示例代码。同时由于考虑到数据库迁移等,所生成的操作数据库的代码,只需按生成的配置文件说明修改数据库连接,即可用于任何类型的数据库访问操作等,对应文件会自动解析,既一次生成可用于多种类型的数据库的操作,且当数据库表字段发生重大变化时再生成一次即可。 所有数据库的操作都是以默认实体对应表的主键为准,当然也可指定,增加和更新合并为一个保存操作,由实体本身自己判断是增加还是更新,当然你若愿意也可以分开来做,实体也提供了对应的快捷方式等。更多的好处在你用过之后即知。工具同时提供大量的示例代码,当你安装后,开发示例代码可以看到,示例代码提供了3套示例(分别是:Oracle、SqlServer、Access,其它类型的数据库使用类似仿照即可,实体文件根据数据库连接会自动解析)和一套新版本(v3.0)的例子EntitysCodeGenerateDemoTest,用VS2005打开每个Demo文件解决方案文件(.sln)即可看到源代码,示例都是以对应数据库自带的示例库为例介绍的。(补充一下Oracle数据库自带的实例库,如scott/tiger表没有注释,所以这里实体字段没有提取出注释。) 最新版本也可参见下列地址: http://download.csdn.net/source/3030634 http://www.skycn.com/soft/53715.html http://download.enet.com.cn/html/030212009031901.html http://qun.qq.com/air/#60873348/share
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值