.net Core 创建项目(EF Core DBFirst)

本文介绍如何在ASP.NET Core项目中使用Entity Framework Core进行数据库操作,包括项目搭建、所需包的安装及实体与上下文的生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先创建一个空的创建一个ASP.NET Core Web 应用

2.引入包,在程序包管理控制台运行命令

Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design
Install-Package Microsoft.EntityFrameworkCore.Tools-Pre

3.根据现有数据库生成实体和上下文,同样在程序包管理台运行命令

Scaffold-DbContext "server=DESKTOP-9HM12DD\YYBSQL;database=EFCoreDemo1;integrated security=SSPI;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

"server=DESKTOP-9HM12DD\YYBSQL;database=EFCoreDemo1;integrated security=SSPI;"为连接数据库字符串,如需其他数据库请自行修改,-OutputDir Models中Models为生成实体文件夹名。

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

Scaffold-DbContext "server=DESKTOP-9HM12DD\YYBSQL;database=EFCoreDemo1;integrated security=SSPI;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

 

### 三级标题:.NET 8 创建项目并集成 EF Core 的教程 #### 创建 .NET 8 Web API 项目 在命令行工具中运行以下命令以创建一个新的 .NET 8 Web API 项目: ```bash dotnet new webapi --name MyEfCoreProject cd MyEfCoreProject ``` 此命令将生成一个基本的 Web API 结构,其中包含必要的文件和目录[^1]。 #### 安装 Entity Framework Core NuGet 包 为了使用 EF Core,需要安装相应的提供程序包。例如,如果目标数据库是 SQL Server,则应安装 `Microsoft.EntityFrameworkCore.SqlServer` 和 `Microsoft.EntityFrameworkCore.Tools`: ```bash dotnet add package Microsoft.EntityFrameworkCore.SqlServer dotnet add package Microsoft.EntityFrameworkCore.Tools ``` 这些包分别用于与 SQL Server 数据库通信以及启用迁移和其他工具支持的功能[^2]。 #### 配置 SqlDbContext 类 创建名为 `SqlDbContext.cs` 的新类文件,并定义继承自 `DbContext` 的上下文类。在此类中声明 DbSets 属性表示实体集合: ```csharp using Microsoft.EntityFrameworkCore; public class SqlDbContext : DbContext { public DbSet<MyEntity> Entities { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("YourConnectionStringHere"); } } ``` 上述代码片段展示了如何设置默认连接字符串以及指定使用的数据库类型为 SQL Server[^3]。 #### 设置数据库连接字符串 编辑项目的 `appsettings.json` 文件来存储敏感信息如数据库连接串: ```json { "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDbName;Trusted_Connection=True;" }, ... } ``` 接着修改 `Program.cs` 来加载该配置项并通过依赖注入机制注册 `SqlDbContext` 实例: ```csharp builder.Services.AddDbContext<SqlDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); ``` 这里我们利用了 ASP.NET Core 提供的强大配置系统读取外部源中的键值对[^4]。 #### 使用 AddDbContextPool 进一步优化性能 当应用程序频繁请求短生命周期的服务时,考虑引入上下文池技术减少每次新建实例带来的开销: ```csharp builder.Services.AddDbContextPool<SqlDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); ``` 注意只有那些不依赖其他 scoped 或 transient 生命周期组件的情况下才适合加入到 pool 中去共享重用[^5]。 #### 自动生成模型对应的数据库表结构 最后一步就是基于现有的 C# 对象图谱构建实际存在的物理模式层面上的东西——即所谓的 Code First 方法论下的初始状态设定过程。这通常涉及两个主要动作:“添加新的迁移脚本” 及 “更新本地数据库”。 执行下面两条指令完成整个流程: ```bash dotnet ef migrations add InitialCreate dotnet ef database update ``` 以上便是关于如何在一个全新的 .NET 8 应用里快速搭建起围绕着 Entity Framework Core 构建的数据持久化解决方案的一个概览介绍[^6]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨中深巷的油纸伞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值