2

我开始在我的 MVC 应用程序中使用 LightInject,但我对如何实现 DB Context 类的实例有点困惑。

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

此外,我的应用程序中的 DB Context 类已经实现了一个接口 (IdentityDbContext),因此为存储库创建另一个接口似乎并不正确。

DB Context 类在构造函数中确实有这个:

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

所以我可以很容易地调用:

 _context.Create()

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

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

4

1 回答 1

2

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

在您的 ioc 配置文件中:

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

一些服务:

private readonly Context _context;

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

如果您想使用接口,请注册一个接口并将其传递到您想要的任何地方。

于 2014-12-23T13:30:21.513 回答