2012-03-01 2 views
0

나는 길을 잃어 버렸으므로 도움이 필요하다.저장소 DbContext 및 MyDBContext

저는 EF 4.2 및 asp.net mvc3을 사용하고 있습니다. 나는 DbContext에서 작동하는 Generic Reposiotry를 IoC를 통해 MyDBContext로 초기화 할 DbContext를 설정했습니다. 지금까지 모든 것이 잘 작동합니다.

My Repository 클래스에서 DbContext 데이터 멤버를 사용하므로 MyDbContext와 다른 API를 사용합니다. 내가 제대로하고 있니?

감사

+1

'MyDBContext' 란 무엇이며 저장소에 필요하지 않은 특수한 유형이있는 이유는 무엇입니까? 저장소가 귀하의 유형을 사용하지 않는 이유는 무엇입니까? –

+0

@LadislavMrnka MyDBContext는 DbContext를 확장하는 EF 4.2에서 제공하는 클래스입니다. 그리고 DbContext는 지난 몇 시간 동안 제가 사용하도록 격려 한 것입니다. 거기에 문제가 있습니까? – afr0

+0

아니요, MyDBContext가 매핑 정의에만 사용된다는 것입니다. –

답변

1

임 작업 패턴이나 서비스의 단위를 사용하지 않는 경우, 여기에 나는 그것이

 

public class YourController : Controller 
{ 
    private ICustomerRepository _repository; 
    public YourController(ICustomerRepository repository) 
    { 
    _repository = repository 
    } 

... 
} 

public class CustomerRepository : ICustomerRepository 
{ 
    private IContext _context; 
    public CustomerRepository(IContext context) 
    { 
     _context = context; 
    } 

} 
 

개체 그래프가 다음 DI 컨테이너에 의해 구축 할 방법입니다. 컨텍스트가 각 요청에 따라 처분되고 있음을 확인하십시오. 이는 사용하는 DI 컨테이너에 따라 구성에 따라 다릅니다.

+0

또한 일반 저장소에서 작동하는 서비스를 사용하는 컨트롤러에 대한 기본 클래스가 있습니다. 이게 당신이 나를 더 잘 인도하는 데 도움이되기를 바랍니다. – afr0

+0

왜 인터페이스가 아닌 여기에 구체적인 구현 (DbContext)을 주입하겠습니까? 테스트가 그렇게 어려울 것 같습니다. 당신은 서비스를 주입하고 있습니까, 아니면 귀하의 컨텍스트를 서비스에 전달하고 있습니까? 개인적으로 컨트롤러에 주입하여 모든 의존성에 대한 객체 그래프를 작성하도록하는 것이 좋습니다. 서비스가 필요하면 인터페이스를 사용하고 컨텍스트를 삽입합니다. 구체적인 구현을 주입 할 수는 있지만 (그렇게하고있는 것처럼),이 컨트롤러를 조롱하거나 테스트하는 것은 좀 더 어렵게 만든다. –