저는 DDD (도메인 기반 디자인)와 저장소 패턴 (C#)을 배우고 있습니다. 저장소 패턴을 사용하여 엔티티를 유지하고 실제로 사용되는 데이터베이스 (Oracle, MySQL, MongoDB, RavenDB 등)를 신경 쓸 필요가 없습니다. 그러나 데이터베이스 고유 ID를 처리하는 방법을 잘 모릅니다 : 대부분의 (모든?) 데이터베이스가 사용합니다. 예를 들어, RavenDB는 저장해야하는 각 엔티티에 string 유형의 id 속성이 있어야합니다. 기타에는 int 유형의 id 속성이 필요할 수 있습니다. 이것은 다른 데이터베이스에 의해 다르게 처리되기 때문에 데이터베이스 ID를 엔티티 클래스의 일부로 만들 수 없습니다. 그러나 적어도 실제 엔티티를 저장할 때는 어느 시점에 존재해야합니다. 내 질문은 이것에 관한 가장 좋은 방법은 무엇입니까?데이터베이스 특정 ID를 저장소 패턴으로 추출 하시겠습니까?
현재 내가 추구하고있는 아이디어는 각 비즈니스 개체 유형에 대해 데이터베이스 특정 "값 개체"를 구현하려는 각 데이터베이스에 대한 것입니다. 이 값 객체는 데이터베이스 고유의 id 속성을 가지며 읽기와 쓰기가 수행 될 때 두 객체 사이를 매핑합니다. 이게 좋은 생각 인 것 같니?
정말 필요하니? 당신이 마주 치게 될 유지 보수 지옥 때문에 나에게 좋은 생각이 아닌 것 같습니다. – xelibrion
여기 xelibrion에 동의합니다. – NotMe
나는 똑같은 문제에 직면 해있다. 불행히도, 여기에 언급 된 해결책 중 어느 것도 나를 "완벽한 해결책"으로 치지 않습니다 (하나가 있다면 ...). 또한 데이터 추상화 계층 내에서 특정 구현 유형으로 변환하는 것을 고려했습니다. 말하자면'DTO'와'DAO'는 모든 DB 타입에 공통적 인 인터페이스이지만, 어떤 특정한'DAO' 구현체는 그 메소드 내에서'DTO'를 같은 특정 구현 유형으로 캐스팅 할 것입니다 한 번에 하나의 DB 유형 만 사용된다고 가정). 이렇게하면 특정 ID를 사용할 수 있습니다. 그것은 더러워 보이지만, 지금까지 생각해 낸 것이 최고입니다. – eitanfar