POCO 일대일, 마이크로 ORM. ref id 나 ref 객체 만 저장해야합니까?

dapper domain-driven-design micro-orm poco repository

문제

Dapper (저장소)와 같은 마이크로 ORM을 사용하는 경우 Ref ID를 하위 Poco에 저장해야하나요 아니면 Model에서만 ref 객체를 저장해야합니까? 둘 다 저장하면 루트 객체를 업데이트 할 때 동기화 문제가 발생할 것이라고 생각합니다.

예 :

Class Boat
    +Id
    +LakeId
    +Lake

Class Lake
    +Id
    +Name

어떤 경우 LakeId가 변경됩니까? 호수는 무효 상태가 될 것입니다! 누군가 호수를 변경하고 LakeId에서 살면 어떨까요? LakeId는 유효하지 않은 상태입니다.

이 두 속성의 동기화는 추가 불필요한 복잡성이 될 것입니다. LakeId를 변경하면 db에서 새로운 Lake poco를 얻어야합니다.

어떻게 당신의 프로젝트 (Dapper 또는 PetaPoco와 같은 마이크로 ORM 만 사용)에서 이것을 처리합니까?

인기 답변

모든 마이크로 오메가는 스테로이드에 대한 데이터 매퍼 일뿐입니다. 그것은 당신이 쓰는 SQL에 관심이 없으며 쿼리 결과를 객체에 매핑하려고 시도합니다. 삽입 / 업데이트 도우미를 사용하면 SQL을 사용하지 않고도 쉽게 작업을 수행 할 수 있습니다.

당신의 우려는 마이크로 옴과는 아무 상관이 없습니다. LakeId에 외래 키 제약 조건을 설정하기 만하면됩니다. 나는 보트에 LakeId와 Lake가 모두있는 이유를 정말로 이해하지 못합니다. 먼저 DB 스키마를 바로 잡아야하고 쿼리 결과를 매핑하는 데 필요한 객체 (POCO)를 가져와야합니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.