首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在使用Ninject时如何处理DBContext

在使用Ninject时如何处理DBContext
EN

Stack Overflow用户
提问于 2012-08-12 19:42:15
回答 1查看 18.6K关注 0票数 25

我是第一次尝试使用Ninject和OpenAccess。请帮我做以下事情。这是我的项目的样子。

public class ContentController : Controller
{
    private ContentService contentSvc;

    public ContentController(ContentService contentSvc)
    {
        this.contentSvc = contentSvc;
    }
}

下面的类位于我的web应用程序中的一个文件夹下。

public class ContentService
{
    private IContentRepository contentRepository;

    public ContentService(IContentRepository contentRepository)
    {
        this.contentRepository = contentRepository;
    }

    public void InsertContent(Content content)
    {
         contentRepository.InsertContent(content);
    }
}

以下存储库属于单独的程序集。

public class ContentRepository : IContentRepository
{
    DBContext db;
    public ContentRepository(DBContext _db)
    {
        db = _db;
    }

    public void InsertContent(Content content)
    {
             db.Add(content);
    }
}   

以下是Ninject绑定的样子..

kernel.Bind<ContentService>().To<ContentService>().InRequestScope();
kernel.Bind<IContentRepository>().To<ContentRepository>().InRequestScope().WithConstructorArgument("_db", new DBContext());

如果我一次只获取一个页面,一切都会正常工作。我正在使用一个简单的工具'XENU‘来同时获取多个页面。这就是我使用DBContext一次获取多个页面时遇到的错误。

我不确定Ninject是否在每个请求中设置了DBContext??我得到了不同的错误,例如‘未将对象引用设置为对象的实例。’,或者'ExecuteReader需要打开的可用连接。该连接的当前状态为打开。‘

附注:

我在我的MVC应用程序中的一个文件夹下有ContentService。ContentRepository是一个单独的程序集。我将在ContentService中添加业务逻辑,并仅将'ContentRepository‘用于CRUD操作。另外,请让我知道这个架构是否可以,或者有没有更好的方法来创建服务和存储库。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11921883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档