MVC3 NHibernate/ActiveRecord 프로젝트가 있습니다. 프로젝트는 정상적으로 진행되고 있습니다. 모델 오브젝트 (주로 3 개 또는 4 개의 클래스가 하나 인 거대한 계층 구조)에서 약간의 용도가 있습니다.ActiveRecord와 NHibernate를 디칭 - 어떻게 재구성 할 것인가?
내 응용 프로그램은 분석을 기반으로합니다. 나는 계층 적 데이터를 저장하고, 나중에 그것을 잘라내어 그래프로 표시한다. 그래서 실제 관계는 복잡하지 않다.
지금까지 ORM에서 많은 혜택을 얻지 못했습니다. (ActiveRecord)를 쉽게 쿼리 할 수 있지만 전체 개체보다 정보가 더 자주 필요하지 않으며 복잡한 SQL 문을 반복적으로 선택해야합니다. 원시 SQL은 훨씬 빠르고 깨끗합니다.
그래서이 경우 ORM을 버리고 원시 SQL로 돌아가는 것에 대해 생각하고 있습니다. 하지만 내 솔루션을 재구성하는 방법을 잘 모르겠습니다. 데이터베이스 계층을 어떻게 처리해야합니까?
- 개체를 쿼리하는 정적 메서드가있는 모델 당 하나의 클래스가 있어야합니까? 또는 DB를 나타내는 클래스를 하나만 사용해야합니까?
- 기존 코드를 유지하기 위해 ActiveRecord (또는 내 자신의 ActiveRecord와 유사한 구현)에서 자체 레이어를 작성해야합니까?
- 내 모델 클래스에 ORM 방법 (예 : 저장/삭제)을 결합해야합니까?
- 테이블 구조 (모든 필드가있는 클래스 당 하나의 테이블)를 변경해야합니까?
조언을 제공해 주시면 감사하겠습니다. 나는 최고의 아키텍처와 디자인을 찾아 내려고 노력하고있다.
+1 괜찮은 답변입니다. 내 생각 엔 당신이 맞다; ORM에서 완전히 벗어날 수는 없습니다. 좋은 링크를 가져 주셔서 감사합니다. Dapper 대 PetaPoco를 추천 해 주시겠습니까? 그들 모두는 매우 유사하게 보이고 나는 그들 중 어느 것도 사용하지 못했습니다. – ashes999
내가 Dapper를 (조금) 경험했기 때문에 나는 정말 다른 것을 추천 할 수는 없다. 나는 Dapper가 위대하다는 것을 알았고, stackoverflow에서 좋은 사람들에 의해 만들어졌습니다. 그래서 나는 그것을 뉘앙스로 줄 것입니다. – Charlino
좋아요, 제가 할게요. 귀하의 답변에 감사드립니다. – ashes999