0

저는 기존의 Data/Business/Presentation 계층화 된 접근 방식을 구현하는 asp.net MVC 응용 프로그램에서 작업하고 있습니다.간단한 데이터 조작 : 엔티티 모델 또는 비즈니스 계층에서?

개인을 나타내는 내 엔티티 모델 중 하나에 "주"필드가 포함 된 주소/연락처 정보가 포함되어 있습니다. 데이터를 제어 할 수있는 데이터 소스는 전체 텍스트 (예 : '캘리포니아'대 '캘리포니아', '플로리다'및 '플로리다'등)의 상태 값을 제공합니다.

전 텍스트 값을 약어로 변환하는 데 사용할 정적 도우미 클래스를 만들었습니다.

제 질문은이 도우미 클래스를 어디에 참조해야하며 변환은 어디에서 수행되어야합니까?

나는 다음과 같은 옵션을 참조하십시오

  • 이 정적 클래스를 참조하고 GET의 변환을 수행 모델에 접근을 사용합니다.
public string State 
    { 
     get 
     { 
      return StateConverter.Abbreviate(_state); 
     } 
    } 
  • 이 개체 모델은이 값이 때마다 프리젠 테이션 계층에서 변환을 수행

  • 를 사용 할 때마다 비즈니스 계층에서 변환을 수행의 라인을 따라 뭔가 표시됨

나는 (접근자를 통해) 실제 모델에서이 작업을 수행하는 단순함을 좋아하지만 비즈니스 로직과 같은 작은 냄새가 난다. 다른 옵션은 여러 위치에서 이것을 변환해야한다는 것을 의미합니다 (논리 복제, 사람 목록 통과 등).

감사합니다.

답변

0

계산 된 필드이기 때문에 모델에 넣어도됩니다. 또한 Abbreviate (...) 메소드는 모델 외부의 데이터에 의존하지 않습니다. 거기에 넣을 권리.

+0

그건 의미가 있습니다. 어느 것이 또 다른 질문을 제기합니다. 지금은 모든 모델이 내 전체 솔루션의 자체 프로젝트입니다. 프레임 워크/도우미 클래스를위한 다른 프로젝트도 있습니다. 내 EntityModel 프로젝트에 다른 외부 참조가 없습니다. 내 도우미 프로젝트에 대한 참조를 추가해도 받아 들일 만합니까? – comfortablEnum

+0

도우미/인프라 스트럭처 계층이 교차 절단 문제를 다루기 때문에 문제가되지 않습니다. 앱의 모든 계층에서 참조 할 수 있습니다. – Mualle