2016-11-15 12 views
2

私は私が/編集/削除したり、これまでに何を追加するために、エンティティフレームワークを必要とするすべてのサービス・クラスで、このコンテキストを注入コンテナにdbcontextをディスパッチする方法は?

services.AddTransient<MyContext>(_ => new MyContext(connectionString)); 

起動時にエンティティフレームワークデシベルコンテキストを作成します。

private readonly MyContext context; 

public ArchiveService(MyContext context) 
{ 
    this.context = context; 
} 

私はMicrosoft.Extensions.DependencyInjectionを使用しています。 これは、私の依存性注入コンテナがdbコンテキストを処理する責任があることを意味します。

はどのようにしてコンテキストが配置されていることを確認することができますか?

は、私は、DBのコンテキストを処分するために何かを設定する必要がありますか?

ありがとうございました。 asp.netコアで

+0

これを参照してください:[lifespan/winformアプリケーションのコンテキストの範囲](http://stackoverflow.com/questions/5663754/entity-framework-4-lifespan-scope-of-context-in-a-winform-応用) – Vikrant

答えて

3

は、あなたがAddTransientに登録されているすべてのサービスがそう、スコープと一緒に配置されている - 要求が終了したとき。 TransientScopedの違いは何ですか? Transient - すべての解像度に対して新しいインスタンスが作成されます。あなたのケースでは、すべてのサービスクラスに別々のインスタンスMyContextがあります。要求が終わると、それらはすべて処分されます。 Scopedについて - インスタンスは1つだけ指定された要求(スコープ)のために作成されますので、すべてのサービスは、要求が終了したときに配置されている同じインスタンスを共有しているだろう。

関連する問題