Entity Framework 4, Ninject 3, MVC3 Saat ini di aplikasi web saya, saya telah menggunakan pendekatan yang agak sederhana untuk setiap permintaan instantiasi Konteks Objek. Jadi saya bereksperimen dengan Ninject, dan beberapa kode contoh lama, tetapi saya tidak yakin bagaimana melanjutkan dengan yang berikut ini.. Secara efektif saya ingin dapat melakukan hal yang setara dengan di controller: DB_Entities.Current.Albums ... Haruskah saya akan membuat instance StandardKernel setiap saat? Sampel yang saya lihat menggunakan yang berikut: MvcApplication.Container.Get(); tetapi di Ninject 3 dengan hookup App_Start saya tidak memiliki akses ke Container..
Upaya saya untuk mereplikasi baris di atas, gagal saat runtime.
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>();
}
}
}
}
}
Perhatikan juga, bahwa di App_Start\NinjectWebCommon.cs saya memiliki modifikasi berikut:
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<ILogger>().To<NLogger>();
kernel.Bind<ObjectContext>().To<MusicStoreEntities>().InRequestScope();
}