使用Database First优先于Code First是否有任何与“性能”相关的好处?

时间:2014-02-15 11:27:34

标签: .net entity-framework

我已经搜索了很多,这也违背了我的常识,但是有任何可能的方法,以下陈述是正确的吗?

  

首先使用数据库比执行代码更好“执行”吗?

2 个答案:

答案 0 :(得分:2)

这是一个真实的陈述:

首先使用数据库比执行代码更好“执行”吗?


首先,让我们来定义,“表现更好”的含义是什么?

一般来说,当我们考虑性能时,我们会考虑在 运行时 执行代码的速度和/或效率。

  • 对于已经运行的应用程序,数据库是否已创建,然后是否生成了代码(ORM实体等),反之亦然,因为当应用程序运行时, >所有这一过程已经在编译时进行了。

  • 编译时发生的任何过程都与应用程序的运行时性能无关。

  • 可能需要注意的是编译时很重要,特别是对于具有复杂构建过程的大型项目;在这些情况下,考虑到可能影响建设项目所需时间的做法可能是一个有效的考虑因素;但是,这不适用于应用程序运行时的性能。

  

因此,你的问题的答案是,这不是一个真实的陈述,   因为它对跑步的表现没有任何影响   应用


现在,关于哪种方法更好,更方便,更具可扩展性,更易于维护,更易于使用,更易于优化,可能存在争议(考虑到C#代码以及SQL数据库中可能的未来优化)本身)。

这场辩论可能会在双方都有很好的争论。然而,这样的争论不适合StackOverflow的Q& A格式,因此我会避免在这里坚持我的观点,我更喜欢哪种方法。


我所能说的就是对两种方法的优缺点进行研究,并选择最适合您和/或您团队业务需求的方法。

答案 1 :(得分:1)

我认为这两者之间没有任何性能差异。由于下面提到的情况,你不得不选择一个。

代码

  • 您可以完全控制代码。没有自动生成的代码。
  • EF将处理数据库创建,您不想知道它是如何发生的。

数据库优先

  • 这很好,如果你有现有的数据库。

这个简单的决策树将简单地读取所有内容。

enter image description here