【问题标题】:Entity framework 4 or DataSet?实体框架 4 还是 DataSet?
【发布时间】:2011-04-18 19:43:12
【问题描述】:

对于将在经典 LAN 网络(1 个服务器和最多 25 个客户端)上运行的基本 ERP(包含大约 150 个表的数据库,WinForm 应用程序),您会推荐 EF4 还是 DataSet ?

LINQ2SQL 不是一个选项!

【问题讨论】:

  • 在选择这些东西时,我们需要了解性能要求以及数据在数据库中的存储/布局方式。您能否分享一下关于性能和数据库表结构的内容?
  • 这是一个经典的桌面(多OLTP/少OLAP)应用程序,后端有MSSQL2008X数据库(大部分逻辑都内置在存储过程和关系中),关于销售、采购、订单、库存、生产但小范围内!
  • 您可以将存储过程与 EF4 结合使用 - 将 SP 映射到对象创建。但即使您不想使用 EF4,我仍然会拒绝使用 DataSet。对象更容易处理。

标签: entity-framework ado.net dataset


【解决方案1】:

你可以根据应用逻辑来选择EF,EF可以给你更多的选择但是我认为我们不能根据表的数量来决定。

查看这篇文章将帮助您做出决定:

Why use the Entity Framework?

还可以观看这个精彩的视频:Data Development GPS: Guidance for Choosing the Right Data Access Technology for Your Application Today

【讨论】:

【解决方案2】:

即使您不选择 EF4,DataSet 也不是唯一的选择。

更愿意使用POCOs 而不是DataSet。

对象比数据集更容易操作。例如,验证 POCO 中的数据非常简单且易于维护。在 DataSet 中两者都不是。

【讨论】:

    【解决方案3】:

    EF4. DataSet 是一项古老的技术,EF 在很多方面都是对数据集问题的反应。

    我们最近构建了一个应用程序,其中一部分是对 80 个表的 CRUD 操作。在 EF 之前,我们会使用企业库和数据集。我们估计每个表需要 1 个小时来编写 CRUD 操作和单元测试。使用 EF,这主要被自动生成的代码所取代。

    【讨论】:

    • @Michael Maddox,是的,它实际上是一个集成测试,因为它会命中数据库。我们把它放在一个事务范围内,这样它就不会改变数据库。基本上,他们检查没有人在不更新 EF 模型的情况下更改创建数据库的脚本。使用代码优先的方法,这会有点不同。
    • 你加载了多少条记录?将 20000 条记录(行)加载到带有实体框架的网格中是否可行?
    • @threeFourOneSixOneThree,你应该问这个问题
    【解决方案4】:

    这是一个非常开放的问题,没有太多支持信息。这种决定涉及很多因素。只是你在开发还是一个团队。无论哪种方式,您对 EF 有什么经验?如果您没有丰富的经验并且时间紧迫,使用数据集完成工作可能会更快。

    抛开这些类型的问题不谈,我是 ORM 的忠实粉丝,我认为从长远来看它会让生活更轻松。但如果您不熟悉某些概念,尤其是陷阱(例如 Select N+1 问题),它确实有一个学习曲线。

    【讨论】:

    • 这是一个经典的桌面(多OLTP/少OLAP)应用程序,后端有MSSQL2008X数据库(大部分逻辑都内置在存储过程和关系中),关于销售、采购、订单、库存、生产但小范围内!
    猜你喜欢
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2013-07-17
    • 1970-01-01
    相关资源
    最近更新 更多