asp.net - WCF+ Entity Framework 设计

标签 asp.net asp.net-mvc wcf design-patterns entity-framework-4

我想知道如何设计这个最好的..

在我的 ASP.NET MVC 应用程序上,我有一个数据库,我想使用 WCF 通过 EF 处理与该数据库的所有交互。因此,我在服务上创建了一个实体模型,用于与数据库交互。为了从 ASP.NET 应用程序与 WCF 交互,我为每个 EF 模型(我只有 3 个)创建了 DTO,并创建了一个 Converter 类,用于从 EF 模型转换为 DTO,反之亦然。

顺便说一句..是否可以避免使用 DTO 而只传输 EF 模型? - 我已经尝试过,但没有成功,因为客户端 asp.net 应用程序无法识别这些模型。

这是一种合适的设计方式还是其他方法会更好?

提前致谢。 :)

最佳答案

这种架构确实适用于业务逻辑和数据访问逻辑部署在另一台服务器上而不是 ASP.NET 前端的情况。这种架构的原因可能是公司政策、安全性、可扩展性等。但通常是针对更大的项目。

您说您有 3 个“EF 模型”。这是否意味着您有 3 个 EDMX 文件或 3 个实体?如果您的意思是 3 个实体,那么您的项目可能非常小,除非您确实必须使用此架构(直接要求),或者除非您只是做一些测试项目,否则没有理由这样做。

如何使用 DTO?它只是(或非常接近)到 EF 实体的 1:1 映射吗?在这种情况下,您错过了 DTO 的目的,并且您很可能不需要它们。如果您的服务公开 CRUD 操作,您可以直接使用 EF 实体(但必须使用 POCO 或 STE)。

此外,如果您只想将 EF 模型公开为 CRUD 服务,您应该检查 WCF Data Services .

关于asp.net - WCF+ Entity Framework 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135144/

相关文章:

wcf - 在 Silverlight 中向 WCF 添加压缩的最简单方法是什么?

.net - 将 XML 中的 <ArrayOf> 反序列化为 List<>

c# - 加密 URL 中的路由数据

asp.net - 更改网页时要上传哪些文件?

html - 如何设置 SELECT 下拉列表中可见的最大项目数?

asp.net-mvc - 在 Visual Studio 2015 中的 ASP.NET MVC 5 项目上使用 Grunt

javascript - 语法错误: Unexpected token in JSON at position 0

c# - 使用分页时从 Repeater 的数据源中获取所有项目

c# - 使用 mvc C# 和 sql 的 highcharts

c# - 在 DB 中自动聚合数据的最佳方法