【问题标题】:Understanding the difference between data contracts and business entites了解数据合同和业务实体之间的区别
【发布时间】:2019-02-06 08:34:24
【问题描述】:

我希望有人可以帮助减轻我对 WCF 的一些困惑。我有 WCF 服务。我要做的第一件事是创建数据合约假设我的数据合约是“客户”。我似乎了解数据合同。

现在我不想使用消息合同,所以我直接创建服务合同...ICustomerService...使用名为 GetCustomer 的操作。但是返回类型应该是什么?它应该是 DataContracts.Customer 的返回类型吗?这就是我对业务实体和数据合同之间的区别感到困惑的地方。三个问题:

  1. 数据合同不是业务实体吗?

  2. 假设我在 BusinessLogic 项目中确实有一个名为“CustomerInformation”的客户业务实体。就 ServiceContract 项目而言,它对 BusinessLogic 项目一无所知,这让我相信添加对业务逻辑项目的引用以便它可以看到业务实体不是正确的架构.但是,我看到 ServiceImplementation 项目确实有业务逻辑参考。

  3. 如果我确实有一个 CustomerInformation 业务实体,它看起来会不会与我的 DataContracts.Customer 数据合同完全相同?

【问题讨论】:

    标签: c# .net wcf entity business-logic


    【解决方案1】:
    1. 不,请参阅:https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/using-data 您的数据合约由一个接口表示,该接口定义了外部世界如何将数据传递给您的服务。您的业​​务实体是一个类,其中包含在您的 BL 层内传递和处理的数据。
    2. 在许多情况下,服务实现包含 BL。如果您的服务实现在单独的服务层中,它可能仍与您的 BL 层共享实体。您没有从服务合同项目中引用 BL 是正确的(并且为合同有一个单独的项目是正确的)。
    3. 可能是的,它们可以具有完全相同的属性,但并非必须如此。您的业​​务实体可能具有仅用于内部处理的其他属性。

    【讨论】:

      猜你喜欢
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      • 2015-06-12
      • 2019-10-30
      • 2011-10-26
      相关资源
      最近更新 更多