Entity Framework 4、Ninject 3、MVC3 現在、私の Web アプリでは、オブジェクト コンテキストのリクエストごとのインスタンス化に対してかなり初歩的なアプローチを使用しています。だから私はNinjectといくつかの古いサンプルコードを試していますが、次のことを進める方法がわかりません..事実上、コントローラーで同等のことを実行できるようにしたい: DB_Entities.Current.Albums ...毎回 StandardKernel をインスタンス化していますか? 私が見ていたサンプルは、以下を使用していました: MvcApplication.Container.Get(); しかし、App_Startフックアップを備えたNinject 3では、コンテナにアクセスできません..
上記の行を複製しようとすると、実行時に失敗します。
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();
}