在 .NET 6 中使用 Startup.cs 更简洁的方法

如果您在关注 .NET 6,那么您应该知道,在 .NET 6 项目中,没有 Startup.cs 文件,现在使用了 Program.cs 文件来完成统一的配置。

我之前发了一篇使用在 .NET 6 项目中使用 Startup.cs 的文章。

在 .NET 6 项目中使用 Startup.cs

能否能进一步改进,让它变得更好呢?当然可以,接下来,我会展示一种更为简洁的方法。

为了让代码看上去更简洁,我使用了扩展方法。在 .NET 6 中,使用WebApplicationBuilder 构建程序。所以,我们为 WebApplicationBuilder 和 WebApplication 创建扩展方法。

首先,创建一个静态类 RegisterServiceExtensions,然后定义 RegisterServices 静态方法。然后把 Program.cs 里面注册服务的代码迁移到这里,如下

2e1b501ced1969fc211473c85bd4ee51.png

接下来,我们创建另外一个静态类 RegisterMiddlewareExtensions, 然后定义静态方法 RegisterServices,并把 Program.cs 里面的注册中间件的代码迁移到这里。

adc4c03b9a3e2fdea98d3f955bf8297e.png

最后,更新项目的 Program.cs 使用这些扩展方法。

a58334836873e9b0978e031a8cc6f1e4.png

或者,直接使用一行代码完成这些工作。

74a0e169ebcd77185240da23f404bd6e.png

现在,代码看起来更简洁、可读,且易于管理。

END

2bb76389c74013e7d1a571d2a601f056.gif

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
虽然 .NET 6 取消了 Startup.cs 文件,但是仍然可以使用 Entity Framework Core 连接数据库。在 .NET 6 ,可以使用 `DbContextOptionsBuilder` 和 `AddDbContext` 方法来配置和注册数据库上下文。 以下是一个示例,演示如何在 .NET 6 连接到 SQL Server 数据库: 1. 在项目文件添加对 Microsoft.EntityFrameworkCore.SqlServer 的引用: ```xml <ItemGroup> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.0" /> </ItemGroup> ``` 2. 在应用程序创建一个 DbContext 类,该类将表示数据库上下文: ```csharp using Microsoft.EntityFrameworkCore; public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } // DbSet<...> 属性声明实体集 } ``` 3. 在应用程序注册 DbContext: ```csharp using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(args); builder.Services.AddDbContext<MyDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); var app = builder.Build(); // 在需要使用 DbContext 的地方,使用依赖注入获取它的实例 var dbContext = app.Services.GetRequiredService<MyDbContext>(); app.Run(); ``` 这里使用了配置文件的名为 "DefaultConnection" 的连接字符串。你需要在 appsettings.json 文件添加该连接字符串,例如: ```json { "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;" } } ``` 以上示例的 `AddDbContext` 方法是从 `Microsoft.EntityFrameworkCore` 命名空间引入的扩展方法。这个方法将数据库上下文的类型和一个 lambda 表达式作为参数,该 lambda 表达式用于配置 DbContextOptionsBuilder 对象。这里使用 `UseSqlServer` 方法指定要使用的数据库提供程序。你还可以使用其他方法来指定其他提供程序、连接字符串等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值