[英]In the architecture of an MVC application is it better to add a Service layer or create Database views?
假設您有一個數據庫,用於存儲有關票務系統(例如服務台)的信息。 (簡化的)模式是:
工單 (TicketId(PK),TicketDesc,TicketCreated,TicketClosed, AssignedAtEmployee(FK) )
員工 ( EmployeeId(PK) ,EmployeeName,EmployeeFunction)
票證和員工之間在分配的員工=員工 ID上存在多處關系。
您必須開發一個MVC應用程序(由EF實體+ 存儲庫類組成的DAL )來顯示有關憑單的圖形和統計信息,例如在特定時間段內分配給用戶的憑單數量 。 為了計算統計信息並將圖形的值提供給View,您需要執行一些邏輯。 該邏輯可以放在Controller或存儲庫中 。 由於必須將Controller保持盡可能的小巧,並且Repository中的實現邏輯將增加與數據庫的耦合,在這種情況下最好的方法是什么? 創建服務層還是創建數據庫視圖 ? 在后一種情況下,創建的視圖將被視為我的EF中的實體?
我將創建一個服務層。 在我看來,控制器確實是View的一部分。 存儲庫不應該進行計算。 您需要介於兩者之間的服務。 這種安排將具有許多優點:
我將創建一個服務層,而不是添加數據庫視圖。
存儲庫僅處理數據訪問,服務層具有業務邏輯,控制器非常薄,僅將提供給它的信息映射到模型。
服務層不一定表示WCF服務或ASMX服務,它可以是您引用的業務層。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.