새로운 C# 프로젝트의 데이터를 모델링하기 시작했습니다.이 프로젝트는 지속성이 있어야합니다.OO 데이터 모델 - Object Relational Mapper 제약 조건을 무시할 수 있습니까?
가장 자연스러운 OO 모델처럼 보입니다. 닷넷 제네릭이 많이 있습니다. 개체 목록 및 이러한 개체에는 다른 일반 형식의 목록 등이 포함되며 세 단계 이상 중첩 된 식으로 배열됩니다.
이상적으로는 OO 방식으로 데이터 모델을 설계하고 Object Relational Mapping 도구가 지속성을 처리하도록하고 싶습니다. OO 디자인은 관계형 디자인보다 훨씬 쉽습니다.
그러나 ORM에 대한 나의 초기 연구는 그들이 반드시 이러한 방식으로 작동하지 않는다는 것을 나타냅니다. 임의로 복잡한 객체 모델을 만들 수 있는지 여부는 아직 명확하지 않으며 ORM이이를 "자동으로"유지할 것으로 기대합니다. (나는 어제 그 질문을했다).
ORM이 처리 할 수있는 구조로 OO 데이터 모델을 제한해야 할 수도 있습니다. 특히 ORM을 아직 결정하지 않은 경우에는 큰 한계가 있습니다.
프로젝트 디자인을 계속 진행시키고 싶습니다. 지금 ORM을 연구하는 데 어려움을 겪고 싶지는 않습니다.
내 본능은 내가 자연스럽게 보이는 방식으로 C#에서 할 수있는 것을 중심으로 내 개체 모델을 디자인하는 것입니다. 이렇게하면 응용 프로그램에 실제로 필요한 것이 무엇인지 더 잘 이해할 수 있습니다. 필요한 경우 ORM 제한을 기반으로 디자인을 다시 고려할 수 있기를 바랍니다.
이것은 좋은 접근 방법입니까, 아니면 상처의 세계에 자신을 맞추고 있습니까? 알려진 ORM 조건을 다루는 것이 더 좋습니까? 그리고 그러한 제약 조건을 중심으로 객체 모델을 "벙어리 다운"합니까?
편집 : Stefan Steinegger는 NHibernate가 OO 코드에 부과 한 대부분의 제한 사항을 나열했습니다. 다른 사람이 다른 ORMs - Subsonic에 대해 비슷한 목록을 제공 할 수 있습니까?
이것이 어제의 질문에 대한 링크라고 생각합니다. http://stackoverflow.com/questions/1527805/orms-that-work-with-complex-net-generic-objects-eg-nested-list-etc –
다른 ORM에 대해 많이 알지는 못하지만, NHibernate와 관련하여이 문제에 대한 지속적인 토론이 있습니다 : http://stackoverflow.com/questions/1514278/is-it-possible-to-use-nhibernate-without-altering -a-ddd-model-of-part-of-af/1514425 # 1514425 –
@Jeff - 위대한 링크입니다. 나는 모든 대답을지지했습니다! –