实体框架作为数据库代码的类型检查/验证系统

本文关键字:类型 检查 验证系统 代码 框架 数据库 实体 | 更新日期: 2023-09-27 17:58:33

当我阅读使用实体框架(或任何现代ORM)的赞成和反对列表时,我很惊讶没有出现以下一点(自我引用):

使用强类型域实体允许在编译时,它本质上执行对所有数据库操作。这是不可能的ADO.NET(无论是使用内联SQL还是存储过程)。

对我来说,这是使用ORM的最大优势之一。在处理基于ADO.NET的应用程序时,我经常遇到的一个问题是SQL的运行时错误。静态检查完全消除了这种情况。

有人能详细说明为什么这对许多开发人员来说没有太大的意义吗?

实体框架作为数据库代码的类型检查/验证系统

哦,太棒了。

它也不是免费的。EF本质上是建立在ADO.net之上的,它只是使用反射在强类型类和实际列名之间来回转换。如果您的记录集相当小,这是可以的,但当您开始处理较大的数据集时,这一点非常明显。一般来说,这个额外的滞后时间并不重要,因为如果数据库从一开始就需要两秒钟的时间来提取数据,那么多出一毫秒(甚至一秒钟)会有什么不同。但在某些情况下,速度至关重要,在这些情况下,您几乎必须使用原始ADO编写自己的构造。

这里也问了同样的问题。其中包括一些不错的答案。

Programmers.stackexchange.com是一个更适合提问的地方。