我一直在开发一个带有实体框架后端的WCF服务。当在WCF服务和客户端之间传递数据时,我考虑在设置POCO之前使用POCO或DTO。只有当我开始编码时,才意识到我从未考虑过使用EF实体在客户端和WCF服务器之间传递数据。
我的问题是:使用EF实体在WCF服务和客户端之间进行数据传输是可接受的选择还是被视为不良做法?
我希望这个问题不会过于主观,但我想了解这是否是可能的设计选项,而不是最好的设计解决方案对于一个问题(这将是一个非常主观的问题)。
答案 0 :(得分:5)
我们认为这是个坏主意。
您的WCF界面是您与外界的合约。
内部数据库的更改不应导致外部合同发生变化。如果您的外部合同被其他10个系统使用,协调工作可能会大到无法进行任何更改。
当然,可能存在小型系统的情况,单个客户端的寿命很短,这可能是合适的。
答案 1 :(得分:1)
建议您阅读以下http://ayende.com/blog/4011/the-stripper-pattern 它也与EF有关。