我已經建立我的網站使用實體和存儲庫模式與ninject注入。我的問題是我的關係似乎沒有得到處理。我有大約30個知識庫(每個表有一個),我可以快速獲得SQL過期時間。我不能使用常規使用語句,因爲代碼在注入之前只識別接口。 (在每個控制器中,我有通過ninject注入的我的存儲庫接口實例)。實體和存儲庫模式與ninject,處置問題
我搜索了網絡,但找不到解決方案,對我來說是準確的。 任何人都可以幫我嗎? 代碼例如:
這是在ninject控制器下addBindings():
ninjectKernel.Bind<IMovieRepository>().To<MovieRepository>().InRequestScope();
和我的庫之一:
public class MovieRepository : IMovieRepository, IDisposable
{
private Entities dataContext = new Entities();
public System.Data.Entity.DbContext DbContext
{
get { return dataContext ?? (dataContext = new Entities()); }
}
public void Dispose() { dataContext.Dispose(); }
}
和在Global.asax文件:
ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory() as IControllerFactory);
您能否顯示您的Ninject綁定和您的某個存儲庫類的示例?我對如何管理DbContext的生命週期感興趣。 – ngm 2012-04-21 08:40:10
你在做什麼?在Global.asax中?您如何設置Ninject?如果可以的話,也許用這個代碼更新你的問題。 – ngm 2012-04-21 10:47:41
@ngm:這是在ninject控制器下的addBindings:ninjectKernel.Bind()。到()。InRequestScope();和我的一個倉庫:公共類MovieRepository:IMovieRepository,IDisposable { 私人實體dataContext =新實體(); public System.Data.Entity.DbContext DbContext { get {return dataContext ?? (dataContext = new Entities()); () } public void } } –
2012-04-21 10:49:05