Entity Framework 4还是DataSet?

10

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

不推荐使用LINQ2SQL!


在选择这些内容时,我们需要了解性能要求以及数据在数据库中的存储方式和布局。您能否分享一两个关于性能和数据库表结构的词? - Nix
这是一个经典的桌面应用程序(更多的 OLTP / 较少的 OLAP),后端使用 MSSQL2008X 数据库(大部分逻辑都在存储过程和关系中构建),涉及销售、采购、订单、库存、生产等方面,但规模较小! - EmirZ
你可以使用EF4与存储过程 - 将SP映射到对象创建。但即使您不想使用EF4,我仍然会抵制使用DataSets。对象更容易处理。 - Joe Ratzer
4个回答

6

EF4. 数据集是一种旧的技术,EF在许多方面是对数据集问题的反应。

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


1
@Michael Maddox,是的,它实际上是一个集成测试,因为它会访问数据库。我们将其放在事务范围内,以便它不会更改数据库。基本上,他们检查没有人更改创建数据库脚本而不更新EF模型。采用代码优先方法会有所不同。 - Shiraz Bhaiji
你要加载多少条记录? 使用实体框架将20000条记录(行)加载到网格中是否可行? - surfmuggle
@threeFourOneSixOneThree,你应该把这个当作一个问题来问。 - Shiraz Bhaiji

4

videoLink 已失效,请前往此处获取最新链接:http://channel9.msdn.com/Events/TechEd/NorthAmerica/2010/DEV324 - ruedi

2
这是一个比较开放的问题,缺乏支持性信息。这种决策涉及到许多因素。你是独自开发还是团队合作?无论哪种情况,你对EF有什么经验?如果你没有太多经验,并且时间紧迫,使用数据集可能更快地完成工作。
除了这些问题,我非常喜欢ORM,因为我认为它可以让生活更轻松。但是,如果你不熟悉一些概念,尤其是像Select N+1问题这样的陷阱,它确实有一个学习曲线。

这是一个经典的桌面应用程序(更多的 OLTP / 较少的 OLAP),后端使用 MSSQL2008X 数据库(大部分逻辑都在存储过程和关系中构建),涉及销售、采购、订单、库存、生产等方面,但规模较小! - EmirZ

2

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

与DataSets相比,我更愿意使用POCOs(普通的CLR对象)

与DataSets相比,对象更容易操作。例如,在POCO中验证数据是微不足道且易于维护的。而在DataSet中则不是这样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接