2012-07-19 6 views
0

데이터를 입력하거나 드롭 다운 상자에서 항목을 선택할 수있는 약 5 개의 필드가있는 보고서가 있습니다. 나는 일반적으로 입력을 검사하고 사용할 DAO 메서드를 결정하는 컨트롤러 클래스가 있습니다. 그러나 입력 또는 선택 필드가 많을수록 컨트롤러 메소드가 부풀어 오른다는 뜻입니다. 또 다른 옵션은 입력에서 쿼리를 작성하는 것이지만 쿼리를 읽기/디버그하기가 어렵다고 생각합니다. 어떤 대안이 있습니까? 또는 어느 것이 가장입니까? 둘 다 구현할 방법이 없으며 디자인에 중점을 둡니다.보고 입력 유효성 검사

편집 : 나 :

가 & & (!?가 true (의 startDate = DateTime.MinValue) d.MinDay> =의 startDate)이 있어야합니다 : 엔티티 프레임 워크 및 LINQ를 사용하여 C#에서

예 그렇게 나쁜 습관입니까?

List<Order> orderList = (from o in dbContext.Order 
              join d in dbContext.DeliveryDetails on o.DeliveryID equals d.DeliveryID 
              join od in dbContext.OrderDeals on o.OrderID equals od.OrderID           
              where o.UserID == user.UserID 
              && ((startDate != DateTime.MinValue) ? d.MinDay>=startDate : true) 
              && ((endDate != DateTime.MinValue) ? d.MaxDay<=endDate : true) 
              select o).Distinct().ToList(); 
        return orderList; 

답변

1

당신은 좋은보기를 만들 ... 당신이 해결해야 할 작은 문제를 해결 한 다음 모든 작은 뷰를 결합하여 작은 전망과 작은 컨트롤러를 정의하는 시도해야하고, 작은 컨트롤러가 큰를 만들 컨트롤러 ... 부풀린 컨트롤러 대신 모든 작업을 적절한 하위 컨트롤러에 위임하는 간단한 컨트롤러가 필요할 것입니다 ... 필요한만큼 여러 번 해당 메커니즘을 반복 할 수 있습니다 ...