EF를 사용하여 응용 프로그램에서 UnitOfWork 및 Repository 패턴을 사용했습니다.UnitOfWork + 리포지토리 패턴 및 Entity Framework 가장 {
실제로 내 디자인은 UnitOfWork가 ObjectContext 클래스를 만들고 Repository concrete 클래스를 주입한다는 것을 제공합니다. 예를 들면 :
UnitOfWork.cs (초기화)
public DefaultUnitOfWork() {
if (_context == null) {
_context = new MyDataContext(ConfigSingleton.GetInstance().ConnectionString);
}
}
UnitOfWork.cs (저장소 인스턴스를 받고)
public CustomerRepository Customers {
get {
if (_customers == null) {
_customers = new CustomerRepository(_context);
}
return _customers;
}
}
저장소 클래스가 이미 정의되어이 방법 ObjectContext를 데이터를 검색하고 업데이트하는 메소드를 사용할 수 있습니다. 이것은 훌륭하게 작동합니다.
이제 응용 프로그램 풀 ID를 가장 한 쿼리를 실행해야합니다. 그래서 가장 내에서 UnitOfWork 생성자에서 코드를 래핑하기로 결정했습니다.
ObjectContext
은 리포지토리 생성자에 전달되어 나중에 리퍼 지스터 클라이언트가 호출 할 때 사용합니다 (예 : FindAll()
).
실제로 데이터베이스에 대한 실제 연결은 Entity Framework에서 쿼리를 수행하기 전에 이루어졌으며 정확히 ObjectContext
을 만들지는 않았습니다.
이 문제를 어떻게 해결할 수 있습니까?