2012-07-19 78 views
0

我有一個包含大約5個字段的報告,用於輸入數據或從下拉框中選擇項目。我通常有一個控制器類來驗證輸入並確定使用哪種DAO方法。然而,隨着更多的輸入或選擇字段,這意味着它會導致控制器方法臃腫。另一種選擇是從輸入構建查詢,但我認爲這會使查詢難以讀取/調試。有沒有其他選擇或哪一個最好?我沒有如何實現這兩個,我專注於設計。報告輸入驗證

編輯:

如果有的& &((的startDate = DateTime.MinValue)d.MinDay> =開始日期::!true)或者使用所述實體框架和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

你應該嘗試界定解決您要解決的較小的問題...然後你把所有的小意見較小的意見和小型控制器創建偉大的觀點,和小控制器創造偉大控制器...而不是有一個臃腫的控制器,你會有一個簡單的控制器,委託所有的工作,以適當的子控制器...您可以重複該機制多次,你需要...