我正在为 EF4 Fluent 模式编写一个IRepository和IUnitOfWork包装器。
在此设计中,DbCompiledModel每个应用程序生命周期创建一次(如 NHibernate ISessionFactory)。和 all 一样,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一个新的DbContextnew DbContext(connection, compiledModel, true)
所以我面临两种选择:要么DbConnection在整个应用程序生命周期中共享一个,要么DbConnection为模型构建过程创建一个短期的,以及一个新的DbConnection每当DbContext创建一个。
有没有更有效的方法来管理我忽略的连接?