だから私は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) は、彼らが言うように正確に行います。
私の同僚は、ビジネス リポジトリが必要かもしれないと考えていましたが、それは少し扱いにくいかもしれないと考えていました。何かご意見は?