我有一个使用Web Api构建的聊天应用程序后端,我将几个数据库实体直接暴露给客户端。我想知道是否有任何积极的观点将实体映射到DTO,或者我是否应该像我目前一样继续暴露实体。只是为了澄清我没有问DTO与非DTO一般性问题,而只是在这种情况下使用它的优点,因为实体中的大多数字段可能会被客户使用。
答案 0 :(得分:15)
是的,如果这是一个由一个人开发的小应用程序而您只有几天完成它,则可以公开您的实体。
如果您打算构建将来可能会成长的应用程序,则应考虑使用DTO,因为域实体不是表示数据的最佳选择。域实体总是或多或少,而不是客户端所需的。
您可以使用名为AutoMapper的工具将域实体映射到DTO。
答案 1 :(得分:5)
与任何其他应用程序相同的优点。您的应用没有特定的优势。使用DTO本质上是一种解耦练习,将属性与方法隔离开来。 目前您正在传递数据库对象。这样做可能意味着你传递的不仅仅是需要的,而且暴露的比你需要的还要多。您还暗示了很多,操作的内容和方式。又有什么东西可以摆脱分裂的努力?