2010-07-21 3 views
0

데이터베이스와 작업을 노출하는 웹 서비스가 있습니다. DAL에 Entity Framework 4를 사용하고 있습니다.데이터베이스에 대한 변경 사항을 반영하여 ObjectContext를 새로 고치거나 다시 만드시겠습니까?

데이터베이스와의 작업을 처리하는 가장 좋은 방법은 무엇일까? ObjectContext의 인스턴스를 활성 상태로 유지하지 않고 데이터베이스에 수행 된 각 작업에 대해 하나를 만드는 것이 가장 좋습니까? 이것은 이것을 처리하는 아주 나쁜 방법 인 것 같지만 데이터베이스에 대한 변경 사항을 따라 잡는 다른 방법을 생각할 수 없습니다.

동일한 컨텍스트를 유지하면 데이터가 언제 수정되었는지 어떻게 알 수 있습니까? 데이터베이스를 질의 할 때 ObjectContext는 레코드가 추가 또는 삭제되었는지 확인하고 기본 키 필드 (올바른지?)를 확인합니다. 이 경우 명시 적으로 특정 개체를 새로 고쳐야한다는 말을해야하는데 이는별로 실용적이지 않습니다.

timestamp 열이 사용되는 솔루션을 생각 중이며 objectcontext가 해당 열의 변경 사항을 확인합니다. 해당 열이 수정되면 데이터가 새로 고쳐집니다. 그런 솔루션이 Entity Framework 4에 내장되어 있습니까? 또는 다른 사람이 각 요청에 대해 ObjectContext를 다시 만들지 않고 데이터베이스에서 항상 최신 데이터를 가져 오는 방법에 대한 다른 제안이 있습니까?

답변

2

ObjectContext는 작업 단위로 사용하기위한 것이므로 모든 비즈니스 트랜잭션에 대해 하나씩 작성하여 처리해야합니다.

EF - and repository pattern - multiple contexts

+0

나는 실제로 ObjectContext를 통해 저장소 패턴을 사용하고 있습니다,하지만 난 UnitOfWork에 구현 만이 SaveChanges를 메서드를 호출하여이 경우, 마지막에 변경 사항을 저장하고 있다는 의미 생각했다. UnitOfWork 패턴은 작업을 수행 한 후에 객체를 삭제해야한다고 지정했습니다. – scripni

관련 문제