实体框架4与Native Ado.net

时间:2011-05-11 09:58:06

标签: c# sql entity-framework ado.net

我想知道如何将Entity Framework 4与原生Ado.Net和SP进行比较?

如果我使用普通的Ado.Net,我会失踪的是什么?

值得离开EF4吗?

3 个答案:

答案 0 :(得分:5)

简而言之,EF是对象关系映射器(ORM),ADO.Net是原始电源。 ORM允许您交换一些运行时性能以便于维护。您可以以更具说明性的方式编写代码,从数据库中表达您想要的,而不是 如何获取它。因此,可以在映射中考虑对数据库结构的更改,而不是应用程序中需要触及更改的特定表的每个部分。

如果您使用ADO.Net,您将失去的是开发人员的工作效率。向ADO.Net详细描述每个数据库操作既费时又容易出错,而且没那么有趣。

我认为我不想“离开”ORM并返回原始ADO.Net,除非在需要极端性能的情况下,例如导入大量数据,在这种情况下,您可能会最好还是写一个SSIS包。

答案 1 :(得分:1)

EF不适合“处理”大量数据:例如,包含大量抽象实体的统计数据或财务数据。否则没关系。无论如何,除非你遇到性能问题 - 它也没关系。也没有什么能阻止你同时使用这两个概念。

答案 2 :(得分:0)

EF感觉更自然,但如果你是一个铁杆sql用户,它起初可能会感到虚弱和奇怪。但我喜欢在c#方面做所有事情,减少维护问题,减少头痛,减少魔法字符串。

无论如何,对于性能问题,除非您正在进行批量插入,更新,否则您将看不到任何差异。

如果您使用普通的ADO.Net,如果没有包含某种OR / M,您仍然会处理记录,而不是具有行为和方法的类。您需要在记录上附加一个额外的商业图层。