我正在使用DI和ORM處理ASP.NET MVC應用程序的模型。最近,我一直在研究將所有業務邏輯寫入服務層的優點和缺點,同時將實體中的邏輯特定於實體類本身。在實體類中聲明的方法顯然是在實體的特定實例上調用的,因此只能在實例從查詢實例化到ORM時才能調用。如何以及應該在哪裏消費域對象方法?
比方說,我有一個Product
實體,我聲明瞭一個ApplyDiscount
方法。鑑於從控制器的操作方法傳入產品的ID
,我必須首先使用此ID
查詢產品實例,然後調用ApplyDiscount
方法。但是查詢代碼應該在哪裏發生?在我的服務層中聲明方法需要ID
,查詢Product
實例,然後在該實例上調用ApplyDiscount
是否是一種有效的做法?還是應該將代碼放到其他地方?
最終,我想知道是否在嘗試避免胖服務層時查詢服務層中的代碼並修改代碼實體類中生成的實體是普通/正確的實現&貧血症領域模型。
在服務層有沒有查詢代碼一共打敗目的?
如果有人能夠提供討論這個問題的參考資料,那將會很好。 – NoChance