2
我有一個分層設計的應用程序,如下所示。從多個數據庫中保存域模型
Project.Common // Domain models
Project.DataAccess // Repositories, Persistence models
Project.Services
Project.Web // Presentation Layer
Services
項目採用UnitOfWork
類(在DataAccess
項目中定義)來查詢數據庫。 DataAccess
中的存儲庫返回Common
項目中定義的域模型。 UnitOfWork
類將連接枚舉連接到不同的數據庫。
當我需要填充數據來自不同數據庫(不同數據庫服務器)的域模型時,我遇到了一個問題。我將如何做到這一點?
看來我將不得不查詢單獨的存儲庫,每個存儲庫都會返回一個域對象(因爲它暴露給服務層而不是持久對象)。然後從服務層中更簡單的域對象構建更復雜的域對象。這是正確的方法嗎?
示例代碼在Services
圖層中查詢數據庫。
using (var unitOfWork = new UnitOfWork(DatabaseConnection.MyDbServer1, requireTransaction: false))
{
var repo = RepositoryFactory.GetRepository<IMyRepository>(unitOfWork);
IEnumerable<MyDomainObject> output = repo.GetData();
}
我的回購檢索持久性模型(它是'Project.DataAccess'內部的)並返回域模型(在'Project.Common'中)。那麼我應該如何使用這些領域模型在'Project.Services'中定義一個新的服務模型,或者可以在'Project.Common'中創建一個更復雜的領域模型? – erdinger
您可以使用這些域模型來構建更復雜的服務模型。 –