2009-05-21 5 views
1

관련 질문 here.장기 실행 컨텍스트를 잘 지원하는 ORM

대부분의 ORM은 기존 컨텍스트에 대해 쿼리를 실행할 때 개체가 데이터베이스에서 처음 반환 된 이후에 변경된 데이터를 반환하지 않습니다. DB에 쿼리를 발행하지만 컨텍스트가 오브젝트에 스톰프를 내지 않기 때문에 DB에 대한 모든 변경 사항이 리턴되지 않습니다. Linq에서 SQL 로의이 동작에 대한 설명은 here을 참조하십시오. 작업 단위 패턴을 사용하여 수명이 짧은 짧은 컨텍스트에는 적합하지만 수명이 긴 컨텍스트를 사용하는 경우에는 좋지 않습니다.

Linq에서 SQL 및 Entity Framework를 사용해 보았습니다. 두 프레임 워크 모두 컨텍스트에서 기존 개체를 덮어 쓸 수 있도록 열거 형 인수를 지정할 수있는 새로 고침 메서드를 제공하지만 새 레코드를 선택하지는 않습니다 (적어도 추가하지 않고 쿼리) 및 더 중요한 것은 DB에서 삭제 된 레코드에 대한 개체를 제거하지 않습니다.

컨텍스트와 기존 개체를 삭제할 수 있지만 개체가 응용 프로그램의 다른 요소에 바인딩되어 있기 때문에이 작업을 수행하고 싶지 않습니다.

DB에 대한 최신 데이터로 개체를 새로 고치고 새로 만든 개체에 개체를 추가하고 DB에서 삭제 된 개체를 제거하는 기능이 이상적인 ORM이 있습니까? MS SQL rowversion 열 사용).

답변

0

확인이 ORM : 당신은 사이트에있는 "http://entityorm.uuuq.com"

:

    어떻게 작동하는지
  • 기본 예;
  • PDF 설명서의 전체 설명서 및 예제.
  • 포럼;
  • 지원되는 DB (드라이버를 만들 수 있기 때문에 무제한).
1

잘 모르겠지만 DataObjects.Net와 비슷한 동작이 필요합니다. 엔티티는 데이터를 트랜잭션 상태로 저장하는 긴 수명의 세션 바운드 객체입니다. 새 트랜잭션을 열고 기존 개체의 영구 속성을 읽으면 데이터베이스에서 자동으로 가져옵니다 (EntitySet 속성과 관련이 있음).

물론 쿼리 결과를 실제 상태로 유지하기 위해 각 트랜잭션에 대해 복잡한 쿼리를 실행해야하지만 쉽게 자동화 할 수 있다고 생각합니다.

관련 문제