实体框架作为数据库代码的类型检查/验证系统 [关闭]
Posted
技术标签:
【中文标题】实体框架作为数据库代码的类型检查/验证系统 [关闭]【英文标题】:Entity Framework as a type checking/verification system for database code [closed] 【发布时间】:2013-02-09 13:31:49 【问题描述】:当我阅读使用实体框架(或任何现代 ORM)的优缺点列表时,我很惊讶没有出现以下几点(自我引用):
使用强类型域实体允许在 编译时,它本质上是对你所有的 数据库操作。这是不可能的 ADO.NET(无论是使用内联 SQL 还是存储过程)。
对我来说,这是使用 ORM 的最大优势之一。在处理基于 ADO.NET 的应用程序时,我经常遇到的一个问题是来自 SQL 的运行时错误。静态检查完全消除了这一点。
谁能详细说明为什么这与许多开发人员没有太大关系?
【问题讨论】:
我无法详细说明我不同意的说法。此外,这些讨论问题,无论多么有趣,都不是这里的主题。 您能否详细说明您不同意的原因?谢谢 使用 ORM 的原因还有很多。使用 ADO.Net 的原因有很多。是什么让您认为许多开发人员没有看到编译时类型安全的相关性?这真的不是在这里讨论的问题。请参阅常见问题解答。 因为当我讨论这个问题时,许多开发人员不同意我的观点。他们不认为它是使用 EF 的主要优点。是的,我知道使用 ADO.NET 的原因有很多。这不是这里的讨论。当然,FAQ 希望我们在问题中包含代码 - 抱歉。 【参考方案1】:哦,太好了。
它也不是免费的。 EF 本质上是建立在 ADO.net 之上的,它只是使用反射在强类型类和实际列名之间来回转换。如果您的记录集相当小,这很好,但当您开始处理较大的数据集时,它会非常明显。 一般来说,这个额外的延迟时间并不重要,因为如果说数据库需要两秒钟来提取数据,那么额外的毫秒(甚至一秒)会有什么不同。但在某些情况下,速度至关重要,在这些情况下,您几乎必须使用原始 ADO 编写自己的构造。
【讨论】:
对不起,我想你完全误解了我的问题。我了解 EF 是什么,我只是想对引用的声明有更多的清晰/意见。【参考方案2】:here 提出了同样的问题。它包括一些很好的答案。
Programmers.stackexchange.com 是一个更适合提问的地方。
【讨论】:
以上是关于实体框架作为数据库代码的类型检查/验证系统 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章