문제

객체 인스턴스 또는 정적 헬퍼 클래스를 언제 만들 것인지 혼란스러워합니다. 예를 들어, 데이터 모델을 업데이트하고 데이터베이스에 제출하는 메소드를 호출하면 DataContext의 인스턴스를 만듭니다. 해당 DataContext의 수명은 얼마이며 새로운 데이터 업데이트가 필요할 때마다 새로운 인스턴스를 작성해도 괜찮습니까?

컨트롤러에서 DataContext 인스턴스를 만들고 예를 들어 컨트롤러에 다시 게시 할 때 해당 인스턴스를 재사용했습니다.

도움이 되었습니까?

해결책

DataContext는 매우 가벼운 클래스이며 작업 단위에 사용됩니다. 일반적으로 필요에 따라 적절한 데이터 컨텍스트를 생성하는 공장을 통과합니다. 나는 일반적으로 이것을 사용 블록으로 래핑하고 결과를 목록 (또는 다른 객체)으로 변환하여 쿼리가 컨트롤러 코드에서 수행되고 결과 객체가 내보기에 전달되도록합니다. 이런 식으로 DataContext는 컨트롤러 방법에서 (사용 블록에서) 배치 할 수 있습니다.

컨트롤러에 공장을 주입하는 이유는 두 가지입니다. 이는 Datacontext가 주문형시에 생성 될 수 있으며 테스트를 위해 Mock Datacontext를 생성하는 공장을 사용할 수 있습니다. 후자를 사용하면 단위 테스트에서 실제 데이터베이스를 사용하지 않아도됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top