簡體   English   中英

在MVC應用程序的體系結構中,最好添加服務層或創建數據庫視圖?

[英]In the architecture of an MVC application is it better to add a Service layer or create Database views?

假設您有一個數據庫,用於存儲有關票務系統(例如服務台)的信息。 (簡化的)模式是:

  1. 工單 (TicketId(PK),TicketDesc,TicketCreated,TicketClosed, AssignedAtEmployee(FK)

  2. 員工EmployeeId(PK) ,EmployeeName,EmployeeFunction)

票證和員工之間在分配的員工=員工 ID上存在多處關系。

您必須開發一個MVC應用程序(由EF實體+ 存儲庫類組成的DAL )來顯示有關憑單的圖形和統計信息,例如在特定時間段內分配給用戶的憑單數量 為了計算統計信息並將圖形的值提供給View,您需要執行一些邏輯。 該邏輯可以放在Controller存儲庫中 由於必須將Controller保持盡可能的小巧,並且Repository中的實現邏輯將增加與數據庫的耦合,在這種情況下最好的方法是什么? 創建服務層還是創建數據庫視圖 在后一種情況下,創建的視圖將被視為我的EF中的實體?

我將創建一個服務層。 在我看來,控制器確實是View的一部分。 存儲庫不應該進行計算。 您需要介於兩者之間的服務。 這種安排將具有許多優點:

  1. 服務可以被SOA中的其他應用程序重用。
  2. 可以使用多種遠程處理技術(SOAP,REST,XML-RPC等)公開服務。
  3. 服務是工作單元的自然所有者; 他們應該管理聯系和交易。

我將創建一個服務層,而不是添加數據庫視圖。

存儲庫僅處理數據訪問,服務層具有業務邏輯,控制器非常薄,僅將提供給它的信息映射到模型。

服務層不一定表示WCF服務或ASMX服務,它可以是您引用的業務層。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM