【问题标题】:How to programatically create a database from an ADO.Net Entity Model?如何以编程方式从 ADO.Net 实体模型创建数据库?
【发布时间】:2010-06-09 20:44:13
【问题描述】:

我正在使用 .Net Framework 4.0。我有一个实体模型 (.edmx),我的程序中有一个菜单选项,用于连接到现有数据库或创建新数据库。当用户选择创建新数据库时,我想从实体模型中生成数据库和模式。知道该怎么做吗?

【问题讨论】:

    标签: c# sql-server database ado.net-entity-data-model


    【解决方案1】:

    不要这样做。它仅适用于您的 v1 产品,一旦您计划发布 v1.1,您就会意识到您无法将现有部署的数据库升级到新架构。

    相反,使用脚本来创建所有对象(包括索引、关系、约束等所有内容)并使用升级脚本来控制如何将每个架构版本升级到下一个版本,如Version Control and your Database 中所述。

    较弱的替代方法是在您的解决方案中使用 Visual Studio 数据库项目,因为 VSDB 项目具有升级功能,尽管基于差异。它们允许您使用vsdbcmd 工具部署 .dbschema 文件,并且此工具可以区分和升级现有模式。您可以通过构建转换步骤将 VSDB 项目输出转换为 EF 模型(这不是微不足道的,但可能)。

    总体而言,不要被 EF(或 Linq)建模作为架构的定义的诱惑。你以后会付出更大的代价。

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      相关资源
      最近更新 更多