我正在为 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
一个新的DbContext
new DbContext(connection, compiledModel, true)
所以我面临两种选择:要么DbConnection
在整个应用程序生命周期中共享一个,要么DbConnection
为模型构建过程创建一个短期的,以及一个新的DbConnection
每当DbContext
创建一个。
有没有更有效的方法来管理我忽略的连接?