我正在開發遵循MSDN的service archetype的WCF服務。也就是說,我遵循該文章中的大部分指導原則,並將我的數據和服務合約放在服務層的單獨程序集中。問題在於,該服務主要基於底層數據庫與其客戶端應用程序之間的事務處理,因此我在數據庫中每個實體幾乎有一個類(數據合同)。由於服務層不應直接訪問DAL,因此我在業務層中有一組接收傳遞給服務的參數的方法,從服務層實例化相應的實體並與DAL(企業庫的DAAB)通信以進行CRUD操作。然而,我覺得這些CRUD操作屬於服務層中的每個類,但將它們放置在那裏會使服務層直接調用DAL ...我的問題是:我的服務設計不好嗎?
1)有一個數據每個數據庫實體的合同是不好的做法
2)CRUD操作是否應直接放置在服務層上(從而導致服務層直接依賴於DAL程序集)? - 或 -
3)我應該爲業務層中的每個合同創建一個包裝類,並將CRUD操作放在那裏,使用(可能)接口方法在層之間進行通信?