2010-06-09 65 views
0

我正在使用.Net Framework 4.0。我有一个实体模型(.edmx),我的程序中有一个菜单选项用于连接到现有数据库或创建一个新的数据库。当用户选择创建新数据库时,我想从实体模型生成数据库和模式。任何想法如何做?如何以编程方式从ADO.Net实体模型创建数据库?

回答

1

不要这样做。它只适用于你的v1产品,只要你计划发布v1.1,你就会意识到你无法将现有的已部署数据库升级到新的模式。

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

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

总的来说,不要因EF(或Linq)建模的诱惑而成为定义您的模式的主模块。稍后你会付出更大的代价。

相关问题