关于使用Ninject的问题

关于使用Ninject的问题

我完成了建议的步骤,将Ninject添加到我的MVC应用程序中。我向DbContext控制器的构造函数添加了一个参数。

控制器:

public class MyController : BaseController{
    public ArticlesController(MyDbContext context)
        : base(context)
    { }}

基础控制器:

public class BaseController : Controller{
    protected DbContext MyDbContext;

    public BaseController(MyDbContext context)
    {
        MyDbContext = context;
    }}

这似乎运作良好。但是请给我一些问题。

  1. Ninject能否确保我DbContext的清理和及时处理?

  2. 我为所有应用程序的控制器创建了一个基类来处理任何常见的初始化等。基类DbContext在构造函数中接受我的参数的实例。但这需要我也将此参数添加到我的应用程序中的每个控制器。有没有办法不要求这个?

  3. 我不确定创建一个我的实例是多么昂贵DbContext。是否有任何方法可以进行优化,只有在请求实际要求我访问数据库时才会创建它。


慕侠2389804
浏览 429回答 2
2回答

慕勒3428872

我总是最终得到很多常见的控制器代码。例如,我可能需要获取当前用户,访问数据库,设置我的公共布局使用的一些ViewBag成员。将它们放在一个地方是不是有意义?(我看到你在答案中有很多参考文献,我很快就要出发了,但稍后会仔细检查所有这些。)
打开App,查看更多内容
随时随地看视频慕课网APP