asp.net-mvc – 使用Ninject时如何处理DBContext
|
我试图第一次使用Ninject和OpenAccess。请帮我解决以下问题。这是我的项目看起来像… public class ContentController : Controller
{
private ContentService contentSvc;
public ContentController(ContentService contentSvc)
{
this.contentSvc = contentSvc;
}
}
以下课程位于我的网络应用程序的一个文件夹下。 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是否在每个REQUEST中配置DBContext?我得到不同的错误,例如’对象引用未设置为对象的实例’,OR’ExecuteReader需要一个打开和可用的连接。连接的当前状态是开放的。 附: 我在我的MVC网络应用程序的一个文件夹下有ContentService。 ContentRepository是一个单独的程序集。我将在ContentService中添加业务逻辑,并使用’ContentRepository’仅用于CRUD操作。另外,请让我知道这个架构是否可行,还是有更好的方式来创建服务和存储库。 解决方法这是我将如何做你的Ninject绑定,kernel.Bind<DBContext>().ToSelf().InRequestScope(); kernel.Bind<ContentService>().ToSelf().InRequestScope(); kernel.Bind<IContentRepository>().To<ContentRepository>().InRequestScope(); 在上面的示例中,EF和Ninject可以正常工作。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC导航到不同的控制器视图
- ASP.NET MVC中的单元测试比Web窗体更好?
- asp.net-mvc-2 – 在MVC 2中使用自定义TextWriter时,“Bina
- asp.net-mvc – 对ASP.NET MVC应用程序使用.resx本地化有哪
- asp.net-mvc – Razor视图与部分视图
- asp.net-mvc – Stack Overflow问题路由
- asp.net – RenderBody()和RenderSection()必须在每个子版面
- 我可以使用MiniProfiler来检测ASP.NET MVC WebApi网站吗?
- asp.net – CSS压缩和组合/ js缩小 – 在运行时或构建时更好
- asp.net – Response.TrySkipIisCustomErrors不工作
- asp.net-core – ASP .NET Core 1.0 RTM本地化无
- iis – “立即启动应用程序池”和“启动模式Alwa
- 你应该在哪里定期登录asp.net-mvc?你应该使用EL
- asp.net-mvc-3 – Asp.Net MVC 3自定义WebViewPa
- asp.net-mvc-3 – Apress Pro Asp.net MVC框架3
- asp.net – jQuery UI对话验证
- asp.net-mvc – Durandal和ASP.NET MVC约定
- asp.net – GridView中的TemplateField标题
- asp.net-mvc – 在请求之间保持/缓存数据 – 常用
- asp.net TextBox中的值和文本属性(值被Text覆盖)
