EF4 Fluent 스키마 용 IRepository
및 IUnitOfWork
래퍼를 작성 중입니다.Entity Framework에서 DbModelBuilder를 사용할 때 연결을 관리하는 방법?
이 설계에서는 DbCompiledModel
이 응용 프로그램 수명주기마다 한 번 생성됩니다 (NHibernate ISessionFactory
과 유사). DbCompiledModel
은 기존 데이터베이스 연결을 필요로하며 모두 DbContexts
입니다.
DbCompiledModel
이 생성되면, 새로운
DbContext
이
new DbContext(connection, compiledModel, true)
그래서 두 가지 선택에 직면하고
사용하여 만들 수 있습니다
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();
}
}
: 하나는 전체를 하나의 DbConnection
을 공유
이
은DbCompiledModel
공장 모델 구축 프로세스를 위해 만료 된
DbConnection
을 생성하고
DbContext
을 만들 때마다
DbConnection
을 새로 만듭니다.
제가 간과 한 연결을 효과적으로 관리하는 방법이 있습니까?
EF는 앱 당 'DbCompiledModel'캐시를 캐시합니다. 왜 그 기능을 복제하고 싶습니까? – Eranga
나는 나중에 다른 ORM으로 EF를 대체하기를 원하기 때문에 EF 위에 저장소/unitofwork 계층을 갖고 싶습니다. – duck9
내 질문에 대답하지 않았습니다. ORM 교체/전환은 매우 어려울 것입니다. 불필요한 추상화에 시간을 낭비하고 있습니다. – Eranga