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

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 是一个更适合提问的地方。

【讨论】:

以上是关于实体框架作为数据库代码的类型检查/验证系统 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

最佳实践? - 数组/字典作为核心数据实体属性 [关闭]

带有 XML 文件的实体框架 [关闭]

根据实体框架检查数据库中的数据

首先通过将类型作为参数传递来动态实例化实体框架数据库中的模型对象

实体框架代码首先进行连接状态检查

实体框架代码优先 - Fluent Api 与数据注释的优缺点 [关闭]