我一直在开发一个带有 Entity Framework 后端的 WCF 服务。在 WCF 服务和客户端之间传递数据时,我考虑过在设置 POCO 之前使用 POCO 或 DTO。只有当我开始编码时,我才意识到我从未考虑过使用 EF 实体在客户端和 WCF 服务器之间传递数据。
我的问题是:使用 EF 实体在 WCF 服务和客户端之间传输数据是可接受的选择还是被视为不良做法?
我希望这个问题不会太主观,但我想了解这是否是一个可能设计选项而不是最佳设计解决方案对于一个问题(这将是一个非常主观的问题)。
最佳答案
我们认为这是个坏主意。
您的 WCF 接口(interface)是您与外界的契约。
内部数据库的变化不应导致外部契约(Contract)的变化。如果您的外部契约(Contract)被 10 个其他系统使用,协调工作可能会非常大,以至于无法进行任何更改。
当然,在某些情况下,小型系统和单个客户端的生命周期可能很短,这可能是合适的。
关于wcf - 通过 API 公开 Entity Framework 类——好主意还是坏主意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9519618/