如何在容器中配置dbcontext?

Ras*_*kov 3 c# asp.net-core

我在启动时创建实体框架数据库上下文

 services.AddTransient<MyContext>(_ => new MyContext(connectionString));
Run Code Online (Sandbox Code Playgroud)

我在需要实体框架添加/编辑/删除或任何其他内容的每个服务类中注入了此上下文。

private readonly MyContext context;

public ArchiveService(MyContext context)
{
    this.context = context;
}
Run Code Online (Sandbox Code Playgroud)

对于IoC,我正在使用Microsoft.Extensions.DependencyInjection。这意味着我的依赖项注入容器负责处理db上下文。

我如何确定上下文已被处置?

我需要配置一些东西来处理数据库上下文吗?

谢谢你的帮助。

Evk*_*Evk 5

在asp.net核心中,向其注册的所有服务AddTransient都与作用域一起放置,因此-请求结束时。Transient和之间有什么区别,Scoped然后您可能会问?对于Transient-为每个分辨率创建新实例。就您而言-您的所有服务类都将具有的不同实例MyContext。当请求结束时,所有这些都将被处置。对于Scoped-将仅为给定请求(作用域)创建一个实例,因此您的所有服务将共享同一实例,该实例在请求结束时被处置。