0

我在我的项目中的两种方法(WCF REST 服务)上退了一步。

  1. 从 WCFDataServices 开始,因为它支持完整的 OData 服务堆栈,但由于对 CRUD 操作的更多验证要求,切换到使用 EF 的“WCF 服务”。
  2. 现在考虑退后一步使用自我跟踪实体向客户端公开实体,正如许多文章所说,微软不再支持 STE 并且更喜欢使用 OData。(但 WCFDataService 再次不适合我)。

请在这里建议什么是最好的设计,以在客户端上公开我的实体。或者,我可能必须编写实体模型的自定义类(数据契约)。但是,这会增加代码(用于自定义和实体之间的对象转换)并降低可维护性。

请建议是否有任何最佳方法来公开我的实体。您的建议很有价值,非常感谢。

4

1 回答 1

0

Fowlers 分布式对象设计的第一定律指出,“不要分发你的对象”。这只是意味着给他们一个副本,而不是实际的实体本身。如果您要在数据协定命名空间中创建实体的镜像副本,那么如果您的数据库架构需要更改,您将保留更多的灵活性。如果您的数据合约最初与您的实体相同,则 AutoMapper 等工具将消除您需要编写的所有转换代码。配置完成后,将您的实体转换为您的数据合同将成为 1 班轮:

Mapper.Map<CustomerDto>(customer);

这将获取您的客户实体并为您返回一个新的客户 dto。它都是基于约定的,并且通过匹配属性名称来工作。即使数据协定与实体不完全相同,您也只需提示 AutoMapper 提供它无法自行确定的属性。

于 2013-06-26T21:13:36.173 回答