2011-01-30 58 views
2

我正在將此ASP.NET應用程序設計爲3層系統。服務層,數據層和用戶界面。我也在正確映射到我的數據模式的服務層中使用POCOS。我的數據層遵循Repository模式。對象或值作爲我的服務/數據層的參數

我的問題是:在我的服務層/數據層我應該使用我的域實體作爲我的方法的參數,或者我應該平坦所有的屬性。什麼是最好的做法在這裏:

這樣的:

public void AddProduct(ProductDTO newProduct) 

或:

public void AddProduct(string ProductName, int Category) 

我的印象是,第一個是更好的,問題是,ObjectDataSource控件不玩好它,它,是否有任何替代數據綁定您的對象的作品的第一種方法,或者我將不得不手動綁定。

+1

當你的對象有20個屬性時你打算做什麼?當然,使用DTO! – 2011-01-30 23:36:04

+0

我如何綁定那些DTO來說網絡表單? ObjectDatasource不支持它們,並且在UI中手動綁定20個屬性是一件痛苦的事情...... – Luis 2011-01-30 23:41:49

回答

4

絕對使用DTO。否則,每次向產品添加或刪除屬性時,都會從每個調用,傳遞和調用方法中添加和刪除參數。

通過使用DTO,您只需更改/更新調用方法和被調用的方法,並考慮您必須傳遞的參數數量。