LightInject in MVC 中的数据库上下文



我开始在我的MVC应用程序中使用LightInject,但我对如何实现数据库上下文类的实例有点困惑。

我知道我可以通过构造函数注入它......但是如果我必须这样做,LightInject有什么意义。

此外,我的应用程序中的数据库上下文类已经实现了一个接口(IdentityDbContext(,因此为存储库创建另一个接口似乎不对。

数据库上下文类在构造函数中确实有以下内容:

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }

所以我可以很容易地打电话:

 _context.Create()

在构造函数中 - 但我的理解是,这将违背 SOLID 原则。

那么如何使用LightInject来创建数据库上下文类的实例呢?

您可以注册上下文,然后通过构造函数注入传递它:

在 ioc 配置文件中:

container.Register<Context, Context>(new PerScopeLifetime());

部分服务:

private readonly Context _context;
public BookService(Context context)
{
    _context = context;
}

如果要使用接口,请注册一个接口并将其传递到所需的任何位置。

相关内容

  • 没有找到相关文章

最新更新