EF4 Fluent スキーマのラッパーを作成していIRepositoryます。IUnitOfWork
この設計では、DbCompiledModelはアプリケーションのライフサイクルごとに 1 回作成されます (NHibernate のようにISessionFactory)。は、すべてのDbCompiledModel場合と同様に、既存のデータベース接続を想定していますDbContexts。
これはDbCompiledModel工場です:
public class DbCompiledModelFactory
{
public static DbCompiledModel Build(
string mappingAssembly, DbConnection connection)
{
DbModelBuilder modelBuilder = new DbModelBuilder();
AddMappingsFromAssembly(modelBuilder, mappingAssemblyName);
DbModel model = modelBuilder.Build(connection);
return model.Compile();
}
}
がDbCompiledModel作成されると、新しいDbContextを使用して作成できます。new DbContext(connection, compiledModel, true)
そのため、私は 2 つの選択肢に直面してDbConnectionいます。アプリケーションのライフサイクル全体で 1 つを共有するかDbConnection、モデル構築プロセスのためだけに存続期間の短いものを作成し、 DbConnectiona が作成されるたびに新しいDbContextものを作成します。
私が見落としていた接続を管理するためのより効果的な方法はありますか?