当我阅读使用Entity Framework(或任何现代ORM)的pro和con列表时,我很惊讶以下几点没有出现(自我引用):
使用强类型域实体允许进行类型检查 编译时基本上执行所有你的验证 数据库操作。这是不可能实现的 ADO.NET(无论是使用内联SQL还是存储过程)。
对我来说,这是使用ORM的最大优势之一。我在处理基于ADO.NET的应用程序时经常遇到的一个问题是SQL的运行时错误。静态检查完全消除了这一点。
有人可以详细说明为什么这与许多开发人员没有多大关系吗?
答案 0 :(得分:0)
哦,太好了。
它也不是免费的。 EF基本上构建在ADO.net之上,它只使用反射来在强类型类和实际列名之间来回转换。如果你的记录集相当小,这很好,但是当你开始处理更大的数据集时,这是非常明显的。 通常,这个额外的延迟时间并不重要,因为如果DB需要两秒钟才能将数据拉起来,那么额外的毫秒(甚至一秒)会产生多大的差异。但有些情况下速度至关重要,在这种情况下,你几乎不得不使用原始ADO编写自己的结构。
答案 1 :(得分:0)
同样的问题被问到here。它包括一些好的答案。
Programmers.stackexchange.com是提出问题的更合适的地方。