如何在容器中配置dbcontext?

时间:2016-11-15 09:23:33

标签: c# asp.net-core

我在启动时创建实体框架db上下文

 services.AddTransient<MyContext>(_ => new MyContext(connectionString));

我在每个需要实体框架添加/编辑/删除的服务类中注入此上下文。

private readonly MyContext context;

public ArchiveService(MyContext context)
{
    this.context = context;
}

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

我如何确定上下文的处理?

我是否需要配置某些内容来处理数据库上下文?

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

在asp.net核心中,您在""" Do something. :todo: This is my Todo-Item that is sadly not found """ # Todo: When I use line comments it is found. def my_function(): pass 注册的所有服务都与范围一起处理,因此 - 当请求结束时。您可能会问AddTransientTransient之间的区别是什么?对于Scoped - 为每个分辨率创建新实例。在您的情况下 - 您的所有服务类都将具有Transient的不同实例。所有这些都将在请求结束时处理。对于MyContext - 只为给定的请求(范围)创建一个实例,因此您的所有服务都将共享同一个实例,该请求在请求结束时处理。