gpt4 book ai didi

oop - DTO与领域对象、WCF以及DB层交互

转载 作者:行者123 更新时间:2023-12-05 01:15:47 26 4
gpt4 key购买 nike

我有 asp.net mvc 2 应用程序。我对创建 DTO 和域实体感到困惑。

MVC Controller 集成要点:1)第三方WCF2) 数据库层

WCF 正在返回特定公司的 Persons 信息和有关公司的一些信息。

我已经生成了 WCF 代理并在代理上编写了一个服务包装器。服务包装器正在与 WCF 对话并将结果映射到 DTO 类 ContactsDTO服务层在不同的项目中。

以下是我的领域类

Company
Person

DTO class
//it contains
class ContactsDTO
{
Person person, Company[] company
}

Controller action 使用 companyID 调用包装器并获取 DTO 类的对象。并从 dto 更新公司信息。它更新 Session 中的公司信息,并将 Company[] 数组传递给其他一些操作。

数据库交互:

现在,根据某些业务逻辑,我必须在数据库中插入人员 ID 和公司 ID 以及其他一些信息。

为此我创建了另一个

class DBDTO
{
Person person, Company[] company, OtherInfo otherInfo[]

}

此 DBDTO 已准备好并传递给数据库层(使用 Linq to sql)。

Questions

是写的方式来做。 DTO交互有什么改进吗?什么都 我可以做的改变来改善整体架构

最佳答案

将数据库绑定(bind)对象转换为 DTO(这需要时间)的另一种替代方法是使用 POCO(普通旧 CLR 对象)并将它们直接用作域模型、可以存储在数据库中的对象和传达给 Controller 进行可视化。这可以让你开始:Working with POCO Entities

这种方法有几个优点

  • 您的 POCO 实体独立于底层数据库实现
  • 您的 POCO 实体可以在没有数据库的情况下进行单元测试
  • 您可以使用 DataContractSerializerDataContractJsonSerializer 轻松地将它们序列化为服务响应(如果您正在构建 API)

关于oop - DTO与领域对象、WCF以及DB层交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438104/

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