代码优先或数据库优先

时间:2016-09-29 12:20:05

标签: c# model-view-controller

我们正在重新编写我们的Web应用程序(至少3个)并将我们的数据库统一为一个。 现在的问题是我们首先使用Code代码还是首先使用Database。我们将使用MVC 5和SQL 2014.除了偏好之外的任何优点和缺点都将受到高度赞赏

谢谢

2 个答案:

答案 0 :(得分:1)

Code-First让您有机会开发不受数据库和EF完全影响的丰富域模型。这是从代码开始的主要好处。

通常可以将模型拟合到现有数据库中。这需要一点点想象力和妥协。

数据库 - 第一种方法往往造成太多妥协,破坏了域模型。这通常导致所谓的anemic domain model,其中大多数域逻辑被推入控制器。这反过来又大大减少了解决方案中物体的使用,导致缺乏灵活性和紧密耦合。

底线是我的项目中我更喜欢Code-First。这是因为我是一个面向对象的程序员,这使我有机会开发适当的面向对象的应用程序。

答案 1 :(得分:1)

如果您正在重写您的软件,我认为规格几乎是清楚的。在这种情况下,如果您熟悉ER建模,我通常更喜欢db-first方法。 (我以前为本地数据库执行代码优先,但对服务器应用程序/ apis执行db优先)

代码优先于开发过程非常灵活,特别是在模型经常更改时。但是,如果您对自己的要求有一个明确的分析并熟悉ER建模,那么您可以设计一个好的模型并分离开发步骤。