【问题标题】:Create database from edmx entity 3.5 file programmatically以编程方式从 edmx 实体 3.5 文件创建数据库
【发布时间】:2011-05-06 20:51:35
【问题描述】:

我想通过我项目中的 edmx 或 edmx.sqlce 文件以编程方式创建一个数据库。我在将数据发送给用户时阅读了最佳实践,这是最好的方法。但我没有找到任何关于它的东西。还是最好创建它并与程序一起发送?如果这样做,我将如何更新数据库?如何判断数据库是哪个版本?

抱歉,多个问题合二为一。我是编程/数据库的新手,所以我不知道它通常是如何完成的,而且似乎也找不到关于它的书。

【问题讨论】:

    标签: database vb.net entity-framework sql-server-ce


    【解决方案1】:

    此方案中的最佳实践是创建安装包 (.msi),它将安装您的应用程序并执行脚本以部署数据库。该脚本甚至可以检查 SQL Server CE 和 .NET Framework 等依赖项。这也将解决您的数据库版本问题,因为 .msi 安装包保留了此信息,因此您可以创建升级 .msi ,它将知道它必须只执行数据库的更改脚本,而不是创建新的。请注意,创建安装包是一项相当复杂的任务,但这是在交付给客户的实际产品中完成的方式。在我现在和以前的公司中,我们都使用WiX 创建安装包,但我们有专门的人来执行此操作。

    没有从 EDMX 文件创建数据库的 API。此外,EDMX 文件不是构建应用程序的一部分。数据库生成是 VS2010 的功能,它使用工作流或 T4 模板将 EDMX 转换为 SQL 脚本。默认模板只能创建完整的数据库脚本,您必须执行它。

    我在separate question中描述了为新版本数据库创建部署脚本的方法。它与代码优先(EFv4.1)有关,但原理相同。如果您需要保留有关数据库版本的信息,您可以有专门的表格,并在升级脚本开始时检查表格中的值。

    【讨论】:

    • 我有一个用于 SQL Server Compact 的架构差异工具,如果有帮助的话
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2010-12-02
    • 2010-09-15
    • 2016-10-19
    • 2014-10-26
    • 2019-08-10
    相关资源
    最近更新 更多