0

私は EF4.3 で構築された MVC アプリを持っており、DbContext を渡す代わりにエンティティに挿入することで、いくつかのリファクタリング/クリーンアップを行おうとしています。私はすでに Autofac を使用してコンテキストをコントローラーに渡していますが、これはうまく機能します。ただし、AutowireProperties を使用してエンティティの DbContext プロパティを設定しても機能しません (プロパティを設定していないようです)。これが私のセットアップです:

var builder = new ContainerBuilder();
builder.RegisterControllers( typeof( MvcApplication ).Assembly );
builder.RegisterType<Database.Context>().InstancePerHttpRequest().WithParameter( "viewmodel_mapper", new Models.ViewModelMapper() );
builder.RegisterType<Database.Appointment>().PropertiesAutowired();
builder.RegisterType<DocStore.Context>().InstancePerHttpRequest();
var container = builder.Build();
DependencyResolver.SetResolver( new AutofacDependencyResolver( container ) );

Database.Appointment には、次のようなパブリック プロパティがあります。

public Context Context { get; set; }

簡単な答えは、コントローラーで http 要求ごとにコンテキストを設定し続け、同じコンテキストを DbContext プロパティを持つ EF エンティティに設定することです。

4

1 に答える 1