gpt4 book ai didi

wcf - 多个 SVC 引用每个都暴露相同的实体

转载 作者:行者123 更新时间:2023-12-04 06:20:54 24 4
gpt4 key购买 nike

我有一个 WPF 应用程序,它使用 WCF 服务对使用 EF4 的实体执行操作。
我的项目结构如下:

项目:实体对象

  • 这是 edmx 文件所在的位置

  • 项目:WCFService
  • 引用实体对象
  • 具有对实体执行操作的数据契约(Contract)
  • 拥有三个不同的 svc 文件,分别称为 Partner.svc、Section.svc、Scheme.svc

  • 项目:数据层
  • 具有对 Partner.svc、section.svc、scheme.svc 的服务引用

  • 问题是 DataLayer 项目随后对对象的引用不明确,因为每个 svc 文件都返回其自己的实体对象引用。

    我该如何解决这个问题?

    最佳答案

    它不会以这种方式工作。如果您希望在所有三个服务引用之间具有相同的数据协定类型,您必须使用 data contract sharing .这意味着在添加服务引用之前,您的数据契约必须以单独的程序集提供给客户端项目。大多数情况下,这意味着您将在服务器和客户端之间共享数据契约程序集。在您的情况下,这意味着与整个 EF 内容共享 EntityObjects - 这很糟糕。

    有多种解决方案:

  • 将实体和 EDMX 内容放入单独的项目中并仅与实体共享项目
  • 使用自定义数据传输对象而不是实体作为数据契约并与这些 DTO 共享程序集
  • 不要共享程序集,而是为客户端手动创建数据契约的“副本”
  • 不要通过不同的服务暴露相同的实体
  • 如果在您的架构中有意义,则仅使用单一服务

  • 最后两个选择更多地与您的应用程序的架构有关。

    关于wcf - 多个 SVC 引用每个都暴露相同的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6586895/

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