2012-07-05 3 views
0

Entity Framework와 함께 작동하도록 프로젝트를 설정했습니다. 이는 데이터베이스의 첫 번째 접근 방식입니다.Castle Windsor와 함께 작동하도록 EF 설정

IoC의 경우 Castle Windsor를 사용하고 있으며 프로젝트가 모든 종속성을 주입하도록 설정되어 있습니다. 제 질문은 성을 설정하여 EF 엔티티에 동일한 작업을 수행 할 필요가 있습니까? 어떻게해야합니까?

+0

아무 생각없이, 아무나 ?? Plz 도와주세요! – annantDev

+0

dao 엔티티 객체를 성 컨테이너에 등록하는 것을 요청합니까? 짧은 대답은 당신이 그럴 필요가 없다는 것입니다, 왜 그럴까요? – Eduard

답변

0

Castle과 함께 Entity Framework를 사용하는 데는 여러 가지 방법이 있습니다. Unit of WorkRepository 패턴을 모두 사용하는 것이 좋습니다. DbContext는 작업 단위에 대한 대부분의 기능을 제공하며 DbSet은 마찬가지로 저장소에 필요한 대부분의 기능을 제공합니다.

EF는 모델 개체에 대한 종속성 주입을 이해하지 못한다는 점에서 주된 문제가 있습니다. EF는 모델 객체를 할당 할 때 항상 빈 생성자를 사용합니다. 따라서 모델 객체에 종속성 주입을 수행 할 기회를 얻지 못합니다. 우리는 DbContext에 개체 구체화 후크를 사용하여이 문제를 입수했습니다 :

((IObjectContextAdapter)this).ObjectContext.ObjectMaterialized += EFObjectLoadInitializer; 

EFObjectLoadInitializer는 모델 객체로 커널을 주입 (모든 모델 객체가 IInjectKernel 인터페이스를 지원해야합니다). 주입시 커널은 다른 종속성을 해결하는 데 사용됩니다. 매우 깨끗하지는 않지만 잘 작동하며 Windsor와 함께 설정 한 나머지 인프라를 활용할 수 있습니다.

관련 문제