2014-12-23 2 views
2

MVC 애플리케이션에서 LightInject를 사용하기 시작했으나 DB Context 클래스의 인스턴스를 구현하는 방법과 관련하여 다소 혼란 스럽습니다.Light MVC에서 데이터베이스 컨텍스트를 입력하십시오.

저는 이것을 생성자를 통해 주입 할 수 있다는 것을 알고 있습니다 ...하지만 이것을해야만한다면 LightInject의 요점은 무엇입니까?

또한 내 응용 프로그램의 DB Context 클래스는 이미 인터페이스 (IdentityDbContext)를 구현하므로 어떻게 든 저장소의 다른 인터페이스를 만들 수있는 것처럼 보입니다.

DB를 컨텍스트 클래스는 생성자에서이 문제를 가지고 :

public static ApplicationDbContext Create() 
    { 
     return new ApplicationDbContext(); 
    } 

그래서 내가 아주 쉽게 호출 할 수 있습니다 : 생성자에서

_context.Create() 

-하지만 내,이 고체에 갈 것입니다 이해 원칙.

그래서 LightInject를 사용하여 데이터베이스 컨텍스트 클래스의 인스턴스를 만드는 방법은 무엇입니까?

답변

0

당신은 컨텍스트를 등록하고 생성자 주입을 전달할 수 있습니다 : 당신에

IOC 구성 파일 :

container.Register<Context, Context>(new PerScopeLifetime()); 

일부 서비스 :

private readonly Context _context; 

public BookService(Context context) 
{ 
    _context = context; 
} 

당신이를 사용하려면 인터페이스를 등록한 다음 인터페이스를 등록하고 원하는 곳 어디에서나 전달하십시오.

+0

신난다. 나는 아직도 생성자에 의존성을 줄 수 있다는 것을 알지 못했다. 이것은 모든 것을 훨씬 쉽게 만든다! – binks

관련 문제