Entity Framework 4, Ninject 3, MVC3 目前在我的 web 应用程序中,我一直在使用一种相当基本的方法来对对象上下文的每个请求实例化。所以我正在尝试使用 Ninject 和一些旧的示例代码,但我不确定如何进行以下操作。实际上我希望能够在控制器中执行相当于:DB_Entities.Current.Albums ... 我应该每次都实例化一个 StandardKernel?我正在查看的示例使用以下内容: MvcApplication.Container.Get(); 但是在带有 App_Start 连接的 Ninject 3 中,我无权访问 Container..
我尝试复制上述行在运行时失败。
using MusicStoreEntities;
using Ninject;
using TestMVC3WithIOC.App_Start;
using System.Data.Objects;
namespace TestMVC3WithIOC.Models
{
public partial class MusicStoreEntities
{
public static MusicStoreEntities Current
{
get
{
using (IKernel kernel = new StandardKernel())
{
return (MusicStoreEntities)kernel.Get<ObjectContext>();
}
}
}
}
}
另外,请注意,在 App_Start\NinjectWebCommon.cs 我有以下修改:
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<ILogger>().To<NLogger>();
kernel.Bind<ObjectContext>().To<MusicStoreEntities>().InRequestScope();
}