【发布时间】:2013-01-03 21:14:24
【问题描述】:
整个问题已经改写得更清楚了..
新项目设计:
- Sql Server 2012
- Visual Studio 2012 .Net 4.5
- 业务逻辑将在存储过程中实现
- ASP.Net 网络表单
- WCF SOAP XML Web 服务使用 DBA 提供的存储过程与数据库通信
- 实体框架或数据集
在这里我可以使用 Dataset - 没问题,但我想在更详细的说明中了解 Entity Framework 相对于 Dataset 的优势。我一直在阅读有关实体框架的文章,并且由于以下原因,我看到人们在数据集上使用 EF 的体验更好。
我想知道这些是否仍然是我在我的情况下使用 EF 可以获得的优势 - 与数据库相关的操作总是通过存储过程完成:
EF 更简洁,更易于维护和编程。 针对 EF ObjectContext 的查询始终针对数据库执行
因为您的对象和数据库之间的映射是通过声明方式而不是在代码中指定的,所以如果您需要更改数据库架构,您可以最大限度地减少对您必须在应用程序中修改的代码的影响——所以该系统提供了一个抽象级别,有助于将应用程序与数据库隔离开来。因此,EF 可以替换您必须自己编写和维护的大量代码。(如果存储过程设计已更改怎么办?)
EF 专门用于将映射查询/塑造结果的过程与构建对象和跟踪更改分开。
DataSet 很糟糕,尤其是在 WCF 场景中(它们为处理内存中的数据操作增加了很多开销)-> 意味着带有 WCF 的 EF 性能更好?
【问题讨论】:
-
使用 EF 还是比 Dataset 更好的选择?
-
显然您没有阅读链接的博文
-
好吧...是的,我同意这是一个大猩猩与鲨鱼之类的问题,但你是说大猩猩在这里通过说“与 EF 一起去”获胜。为什么选择英孚?仅仅因为数据集是一项古老的技术?微软将专注于 EF 而不是 Dataset?即使我使用存储过程,ORM 也会更好?我应该说服我的团队使用 EF 并提供更详细的解释。
-
似乎这是一个需要更多辩论和一些更有经验的资深会员来评论的话题。
标签: .net entity-framework visual-studio-2012 dataset strongly-typed-dataset