Asp.net mvc 4 EF代码优先,型号优先还是Db优先?对于一个不断变化的中大型应用程序

Asp.net mvc 4 EF代码优先,型号优先还是Db优先?对于一个不断变化的中大型应用程序,asp.net-mvc-4,database-design,ef-code-first,entity-framework-5,ef-database-first,Asp.net Mvc 4,Database Design,Ef Code First,Entity Framework 5,Ef Database First,我们将使用MVC4和EF5为一家私营公司开发一个中大型定制web应用程序 早期的分析和以前在该业务领域的经验表明,它将有150多个表/实体,因为我们的客户不是软件工程师,我们知道我们的数据模型将随着项目的进展发生多次变化 现在,我的问题是,根据以下各项,哪种方法更适合我们: 1) 由于将发生许多更改,因此更新数据模型和数据存储的工作量会减少 2) 创建数据存储所需的时间更少,有助于加快项目进度 注意:此应用程序将处理大数据集(某些实体为10k或100k对象)。但是,它会有很少(有时可能没有)并发

我们将使用MVC4和EF5为一家私营公司开发一个中大型定制web应用程序

早期的分析和以前在该业务领域的经验表明,它将有150多个表/实体,因为我们的客户不是软件工程师,我们知道我们的数据模型将随着项目的进展发生多次变化

现在,我的问题是,根据以下各项,哪种方法更适合我们:

1) 由于将发生许多更改,因此更新数据模型和数据存储的工作量会减少

2) 创建数据存储所需的时间更少,有助于加快项目进度

注意:此应用程序将处理大数据集(某些实体为10k或100k对象)。但是,它会有很少(有时可能没有)并发请求和在线用户


提前感谢

请查看和。

我建议您使用CodeFirst结构。因为您的类将是清晰的,并且主要使用业务逻辑中的类。

我认为术语

因为我们的客户不是软件工程师,我们知道 数据模型将多次更改

这是一个现实,但不是数据模型多次更改的全部原因

顺便说一句,一些建议可能会有所帮助
将业务分析视为一个关键点,并继续进行业务分析
越来越多的分析投资将降低开发和变更管理成本
在客户办公室安排一名有才能的分析师作为代表。
有一个特定的客户代表负责分析和开发团队。 记录客户的业务流程,与客户讨论。记录谈判结果。
设计和变更管理
永远不要单独设计数据库。集思广益的团队成员,邀请客户代表,邀请业务分析师,在设计团队中拥有DBA,拥有变更经理角色。
技术
了解技术趋势(使用基于文档的数据库可能会有所帮助)
拥有灵活的框架和体系结构,为业务软件生产服务,而不是相反! 变化将会到来。。。做好准备
变化会发生,所有上述工作都旨在优化解决方案,以降低成本。当发生变化时,它们不会阻止变化。
您需要有一个可接受的机制向客户开具账单
服务级别管理、SLA和OLA将作为指导方针

因此,问题的答案是:
1) 以上这些都有助于解决这个问题。首先继续交互式分析,然后使用模板方法在迭代中进行下一次设计和开发。Chang会来,他们会付出代价。
2) 取决于技术和框架,将有工具(我不知道EF)只是不坚持特定的平台或库


希望这能有所帮助。

他们没有涵盖我所关心的问题:在很多变化中,哪一个更让我烦恼。。。?!?不需要迁移。您可以使用sql脚本将列添加到数据库中的任何表中,并将属性添加到模型和删除元数据表中。(毫无疑问,首先要备份数据库)。通常,在每个结构中,您都需要进行一些迁移工作,或者您可以创建第三个迁移项目,以便将数据从以前的版本传递到最后一个版本,该版本可以使用2数据库。我还想说,我一直认为codefirst结构站点比databasefirst要快。codefirst速度更快,现在他非常支持数据库迁移。谢谢,非常有用。事实上,我们是一个二手承包商。如果我们愿意,第一个承包商会给我们db-or数据模型。其实我们没有,;与客户没有任何联系,我们只是开发。。。因此,我需要为我们使用的平台选择正确的方法,即实体框架。因此,您的客户是第一手承包商,该模式可以应用于。。。干杯,朋友。db first和model first有很多论点,从设计器支持到使用code first无法使用的高级功能(这里有很好的比较:),但处理频繁的模型/db模式更改的方便性并不是其中之一。迁移是code first独有的功能,根据我的经验,它运行得非常好。@Slauma感谢您让我了解您的XP。我看到了你分享的链接,但是它们没有涵盖我的#1担忧:哪一个在很多更改中更容易烦人。。。?!?由于我首先在db中有更多的XP,我有时想在一个小应用程序中为db更改引起的奇怪行为哭泣。。。!!!