KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
i have followed the pattern on this site to hook up ninject and nhibernate to my asp.net-mvc3 site. Here is the code in my global.aspx.cs: internal class ServiceModule : NinjectModule { public override void Load() { var helper = new NHibernateHelper(connectionString); Bind<ISessionFactory>().ToConstant(helper.SessionFactory) .InSingletonScope(); Bind<IUnitOfWork>().To<UnitOfWork>() .InRequestScope(); Bind<ISession>().ToProvider(new SessionProvider()) .InRequestScope(); Bind<IIntKeyedRepository<FAQ>>().To<Repository<FAQ>>() .InRequestScope(); } the issue is that i now need to do Update() and Add() in my controllers; I have this as my controller code: public FAQController(IIntKeyedRepository<FAQ> faqRepository, IUnitOfWork unitOfWork) { _faqRepository = faqRepository; _unitOfWork = unitOfWork; } [Authorize] [AcceptVerbs(HttpVerbs.Post)] [ValidateInput(false)] public ActionResult AddFAQ(FAQ contact) { var c = new FAQ {Question = contact.Question, Answer = contact.Answer}; _faqRepository.Add(c); _unitOfWork.Commit(); return RedirectToAction("Index"); } my main question is that it feels wrong to pass in Iunitofwork in the constructor as many other actions don't need it. I only really need it for the actions where i do updates and inserts into my db. Since i am using ninject IOC on the link above it seems to say to pass this unitofwork object through IOC. So, is there a better more optimized way to using the UnitOfWork pattern with IOC in asp.net-mvc that does call beingtransaction for every method in my contr
Tags (comma-separated)
Save Edits
Cancel