2013-10-10 8 views
2

저는 오랫동안 ASP.NET MVC 응용 프로그램을 개발해 왔습니다. 그리고 모든 프로젝트에서 나는 단 하나의 데이터 컨텍스트를 가지고 있었지만 다른 엔티티에 대해 다른 데이터 컨텍스트를 사용하는 몇 가지 프로젝트를 만났습니다. 나는 그것을 사용하는 것을 생각할 수 없다. 지금까지 내가 알고있는 한, 그들은 서로 다른 트랜잭션에서 작업하기 때문에 CRUD 연산이 예외를 throw 할 때 그 시점까지 커밋 된 이후에 과거 CRUD 연산에 대한 롤백이 이루어지지 않았습니다.다른 DataContext를 사용하는 경우

다른 컨텍스트를 사용해야하는 유일한 경우는 트랜잭션 범위를 분리해야하거나 둘 이상의 데이터베이스를 처리해야하는 경우입니다. 따라서 내 질문은 다음과 같습니다.

1) 다른 엔터티에 대해 서로 다른 데이터 컨텍스트를 갖는 논리는 무엇입니까?

2) 언제 다른 데이터 컨텍스트를 사용합니까?

+0

이렇게하는 데는 여러 가지 이유가있을 수 있으므로 대답하기에는 너무 광범위합니다. 이 문제를 나타내는 프로젝트를 제작자에게 질문 할 수 없습니까? – CodeCaster

+1

DDD 제한된 컨텍스트가있는 EF 모델을 축소하는 방법 : http://msdn.microsoft.com/en-us/magazine/jj883952.aspx – Colin

+0

@Colin +1 좋은 접근 방식 – sotn

답변

0

대규모 프로젝트, 특히 여러 개발자가 작업 한 프로젝트가있는 경우 서로 다른 데이터 컨텍스트가있는 것이 더 쉽습니다. 특정 기능 세트에 필요한 엔티티 만 포함 할 수 있습니다.

예를 들어 장바구니 데이터를 데이터베이스에 임시로 보관하려면 쇼핑 카트 개체 (장바구니 항목 목록, 위시리스트 등) 만 있으면 고객 관리, 주문과 관련된 모든 개체가 필요하지 않습니다. 이행, 고객에게 보낸 이메일 등을 포함 할 수 있습니다.

개발자가 프로젝트의 다른 부분에서 작업하는 것이 더 쉬워집니다. 그들은 모두 다른 사람들과 어지럽지 않고 특정 데이터 컨텍스트를 편집 할 수 있습니다. 이것은 SVN을 사용하여 데이터를 병합하려고 할 때 매우 편리합니다.

+0

다른 비즈니스 컨텍스트를 사용하여 비즈니스 논리를 구분하지는 않겠지 만, 수백 또는 수천 개의 엔티티가 없으면 데이터 컨텍스트를 만드는 것이 저렴하지만 여러 데이터 컨텍스트가있는 이유가 있습니다. 감사합니다. – sotn

0

하나는 ReadOnly/Lightweight 액세스 용이고 다른 하나는 그와 함께 제공되는 모든 기능으로 가득한 액세스입니다.

하지만 분명히 다른 데이터 컨텍스트는 일반적으로 다른 DB를 의미합니다.

관련 문제