我对Entity Framework 4.1 Code First有一些基本知识,但尚未在生产应用程序中使用它。我处于Web应用程序的架构阶段,并且除了将使用实体框架之外,没有对DAL做出任何坚定的承诺。我还没有确定哪种EF方法:模型优先,数据库优先或代码优先。我想知道Code First或其他两个适合这种情况的方式。 3种方法中哪一种最有效?
以下是该方案:
如果你有像我这样的类似情况的经验,那将会很棒。
答案 0 :(得分:2)
第1点可以解决:开发人员写脚本,开发人员给DBA脚本,DBA运行脚本:)
第2点:
您无需在Code-First中删除数据库。生产中通常的方法是关闭数据库初始化程序(它们主要仅用于开发阶段):
Database.SetInitializer<MyContext>(null);
这样您的应用程序就不会在运行时触及数据库模式。如果您的模型不再与数据库模式匹配,您将获得异常。要迁移到新架构,您必须手动或通过脚本(将其提供给DBA)更改架构以匹配模型中的更改。
对于Database-First方法,您必须执行相同操作。对于Model-First,我相信,因为默认情况下Model-First创建的脚本从删除现有数据库开始。无方法为您创建仅更新现有数据库模式的更改脚本。他们总是从头开始创建架构。
所以,在我看来,你提到的观点不是决定赞成或反对Code-First的理由。