我创建了一个使用Entity Framework 6的项目。该项目是一个数据层,用于多个其他项目,例如MVC网站和Web API。 当用户在MVC网站中更改某些内容时,它将通过数据库中的数据层进行存储。但Web API项目未检测到这些更改。
我的DbContext在Ninject的控制器中注入。我尝试在控制器的Dispose
方法中处理DbContext,但这种方法并不起作用。在将数据库上下文注入控制器的构造函数后,我应该Refresh()
吗?或者是否有另一种方法可以使DbContext与数据库保持同步?
Fwiw,这是OWIN Startup类:
public class Startup
{
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
WebApiConfig.Register(config);
config.DependencyResolver = new NinjectResolver(NinjectWebCommon.CreateKernel());
app.UseWebApi(config);
}
}
这是Ninject代码:
public static class NinjectWebCommon
{
public static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
GlobalConfiguration.Configuration.DependencyResolver = new WebApiContrib.IoC.Ninject.NinjectResolver(kernel);
// Register Services:
kernel.Bind<MyDbContext>().To<MyDbContext>().InRequestScope().WithConstructorArgument("disableOrgFilter", true);
return kernel;
}
}