我看到一些人建议 WCF 服务调用数据层,拥有一个包含返回数据的对象,然后将其放入数据协定中。我的问题是为什么不将数据契约放在数据层本身中而只是返回它们呢?这样做有什么缺点吗?我问的原因是我的数据层只是一个类库,我希望能够从可能不使用 Web 服务的多个平台调用它。我似乎找不到这方面的最佳实践。有什么想法吗?
最佳答案
将契约放入数据层的缺点是您将数据层与服务契约耦合,而实际上它们不需要相互关心。理想情况下,您的数据层应该负责按照其规定执行。您可能正在寻找的是 Data Transfer Objects (DTO)。它们的目的只是将数据传输给您的客户。在您的服务层中,您可以将它们转换回各自的实体,以执行任何需要执行的操作。然而,这确实会产生开销,并且您需要一种来回映射 DTO 和实体的方法,例如使用 AutoMapper
关于c# - 数据契约WCF放在哪里?可以放入数据层吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9038650/