.NET 6中缺少Startup.cs类

mv1qrgav  于 2022-11-19  发布在  .NET
关注(0)|答案(3)|浏览(2264)

我在.NET 5中创建了REST API,一切都运行得很好,但是最近我转到了.NET 6,发现没有startup.cs类。既然没有startup.cs,我该如何在.NET 6中添加DB Context呢?

wn9m85ua

wn9m85ua1#

在.NET 6中,Microsoft删除了Startup.cs类。只需转到program.cs文件,在那里您可以添加一个连接字符串,然后您必须使用builder.Services.AddDbContext。旧方法是服务。AddDbContext
只要使用builder.Services,然后你就可以实现你想要的。

zdwk9cvp

zdwk9cvp2#

在.NET 6中,他们将Startup.csProgram.cs统一到Program.cs中。
现在注册中间件、服务、身份验证,并将DbContext和其他所有内容添加到Program.cs文件中。
下面是Program.cs文件的示例:

using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);
//Register services here
builder.Services.AddControllersWithViews();
builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(       
builder.Configuration.GetConnectionString("DefaultConnection")       
));
//builder.Services.AddAuthentication(...)
var app = builder.Build();
//Register middleware here
//app.UseAuthentication();
app.MapGet("/", () => "Hello World!");
app.Run();

有关visit this线程的详细信息。

de90aj5v

de90aj5v3#

对于那些试图添加 transient 、单例或作用域服务的人来说,要清楚......
以前,在Startup.cs中,添加服务类似于:

public void ConfigureServices(IServiceCollection services)
{
    services.AddTransient<IEmailService, EmailService>();
}

现在,在Program.cs中,它看起来如下所示:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddTransient<IEmailService, EmailService>();

相关问题