我想知道如何设计这个最好的..
在我的ASP.NET MVC应用程序上,我有一个数据库,我想使用WCF来处理我通过EF与该数据库的所有交互。所以我在服务上创建了一个实体模型,用于与数据库交互。为了从ASP.NET应用程序与WCF进行交互,我为每个EF模型(我只有3个)创建了DTO,并且从EF模型转换为DTO的转换器类,反之亦然。
在侧面说明..是否可以避免使用DTO而只是转移EF模型? - 我已经尝试过,但没有运气,因为客户端asp.net应用程序无法识别这些模型。
这是一种合适的设计方法还是另一种方法更好?
提前致谢。 :)
答案 0 :(得分:5)
这种架构确实用于业务逻辑和数据访问逻辑部署在另一台服务器上然后是asp.net前端的情况。这种架构的原因可能是公司政策,安全性,可扩展性等。但通常它适用于更大的项目。
你说你有3个“EF型号”。这是否意味着您有3个EDMX文件或3个实体?如果你的意思是3个实体比你的项目可能非常小,除非你真的必须使用这个架构(直接要求),或者除非你只做一些测试项目,否则没有理由这样做。
您如何使用DTO?它只是(或非常接近)1:1映射到EF实体?在这种情况下,你错过了DTO的目的,你很可能不需要它们。如果您的服务公开CRUD操作,您可以直接使用EF实体(但您必须使用POCO或STE)。
此外,如果您只想将EF模型公开为CRUD服务,则应检查WCF Data Services。