所以我有一個DAO,DTO和BO。下面的代碼是結果:分離問題 - DAO,DTO和BO
// Instantiate a new user repository.
UserRepository rep = new UserRepository();
// Retrieve user by ID (returns DTO) and convert to business object.
User user = rep.GetById(32).ToBusiness<User>();
// Perform business logic.
user.ResetPassword();
user.OtherBusinessLogic("test");
user.FirstName = "Bob";
// Convert business object back to a DTO to save to the database.
rep.Save(user.ToDataTransfer<Data.DTO.User>());
所以我想分開的擔憂,但我想擺脫這個代碼中的「轉換」。 「轉換器」實際上位於業務邏輯層(DTO層不瞭解業務邏輯層)作爲擴展對象。 DTO本身顯然只存儲數據,並且沒有任何業務邏輯。 UserRepository調用DAO,並在GetById的末尾使用AutoMapper將DAO映射到DTO。 「轉換」(ToBusiness和ToDataTransfer)完全按照他們的說法進行。
我的一位同事認爲我可能必須擁有Business Repository,但認爲它可能有點笨拙。有什麼想法嗎?
感謝您的回覆。您可以提供的任何示例代碼都會有所幫助。 – 2010-01-19 20:57:07
我同意這一點。您應該找回您的業務對象,如果您需要轉換爲DTO,那麼可以使用AutoMapper等工具進行轉換。 – 2010-01-19 21:48:55