2014-02-15 103 views
2

我搜查了很多东西,这也违背了我的常识,但是有没有什么可能的办法,下面的陈述是真实的?使用Database First over Code First有什么“性能”优势?

首先使用数据库比代码优先表现更好?

+1

我更新了你的问题,因为数据库首先使用T4模板创建[poco's](http://en.wikipedia.org/wiki/Plain_Old_CLR_Object)。 Poco与Code First和Database First无关。 –

+0

你可以阅读下面的答案更多细节: http://stackoverflow.com/questions/5446316/code-first-vs-model-database-first?rq=1 – Mahin

+0

@ErikPhilips - 谢谢。我明白了你的观点。 – Trainee4Life

回答

2

这是一个真正的声明:

利用数据库首先是更好的 “表演” 比代码第一?


首先,让我们来定义,什么是“性能更好的”意思,到底是什么?

一般来说,当我们想到的表现,我们认为速度和/或在运行执行代码的效率。

  • 是绝对没有的,以该数据库是否创建一个已经运行的应用程序的区别,然后代码(ORM实体等)是事后产生的,反之亦然,因为应用程序运行时,所有该过程已经发生编译时间

  • 的任何过程,在编译时发生对应用程序的运行时性能没有轴承。

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

所以,回答你的问题是,它不是一个真正的声明, 因为它使一个运行 应用程序的性能没有差别。


现在,有可能是关于哪种方法更好,更方便,更可扩展性,更易于维护,更容易使用,更容易优化(也考虑将来可能的优化在C#代码辩论以及SQL数据库本身)。

这场辩论可能会在双方都有很大的争议。然而,这样的辩论并不适用于StackOverflow的格式,因此我将避免在这里坚持我的意见,以便我倾向于使用哪种方法。


我可以说的是做你的关于这两种方法的利弊研究,并选择最适合你和/或你的团队的业务需求的办法。

+0

是的,我特别关心运行时间性能。我想过提及那个,但由于某种原因跳过了。 – Trainee4Life

1

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

守则第一

  • 你必须在code.There完全控制没有自动生成的代码。
  • EF将处理数据库创建,您不想知道它是如何发生的。

数据库第一

  • 这是很好的,如果你已经存在的数据库。

这个简单的决策树将读取所有内容,简而言之。

enter image description here