Entity Framework 4, Ninject 3, MVC3 В настоящее время в моем веб-приложении я использую довольно рудиментарный подход к созданию экземпляра контекста объекта для каждого запроса. Итак, я экспериментирую с Ninject и некоторым старым образцом кода, но я не уверен, как поступить со следующим. Фактически я хочу иметь возможность в контроллере делать эквивалент: DB_Entities.Current.Albums... Должен ли я каждый раз создавать экземпляр StandardKernel? Образец, на который я смотрел, использовал следующее: MvcApplication.Container.Get(); но в Ninject 3 с подключением App_Start у меня нет доступа к 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();
}