Entity Framework 4, Ninject 3, MVC3 ขณะนี้อยู่ในเว็บแอปของฉัน ฉันได้ใช้วิธีการที่ค่อนข้างพื้นฐานในการสร้างอินสแตนซ์บริบทของวัตถุต่อคำขอ ดังนั้นฉันจึงทดลองกับ Ninject และโค้ดตัวอย่างเก่าบางส่วน แต่ฉันไม่แน่ใจว่าจะดำเนินการอย่างไรต่อไปนี้ .. อย่างมีประสิทธิภาพ ฉันต้องการให้ตัวควบคุมทำสิ่งเทียบเท่ากับ: DB_Entities.Current.Albums ... ฉันควรจะ กำลังสร้างอินสแตนซ์ StandardKernel ทุกครั้งหรือไม่ ตัวอย่างที่ฉันกำลังดูใช้สิ่งต่อไปนี้: MvcApplication.Container.Get(); แต่ใน Ninject 3 ที่มีการเชื่อมต่อ App_Start ฉันไม่สามารถเข้าถึงคอนเทนเนอร์ได้ ..
ความพยายามของฉันในการทำซ้ำบรรทัดด้านบน ล้มเหลวขณะรันไทม์
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();
}