gpt4 book ai didi

c# - 来自多个数据库的水化领域模型

转载 作者:行者123 更新时间:2023-11-30 23:30:30 24 4
gpt4 key购买 nike

我有一个分层设计的应用程序,如下所示。

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.Services 中)将把这些信息包装在一个单一的文件中是非常有意义的目的。然后,您将在服务层中有一个相应的方法,该方法将通过查询底层存储库返回此模型。

关于c# - 来自多个数据库的水化领域模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34955573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com