我正在使用.Net Framework 4.0。我有一个实体模型(.edmx),我的程序中有一个菜单选项,用于连接现有数据库或创建新数据库。当用户选择创建新数据库时,我想从实体模型生成数据库和模式。知道怎么做吗?
答案 0 :(得分:1)
不要这样做。它只适用于您的v1产品,一旦您计划发布v1.1,您就会意识到您无法将现有已部署的数据库升级到新架构。
相反,使用脚本来创建所有对象(包括索引,关系,约束,所有内容),并使用升级脚本来控制如何将每个模式版本升级到下一个版本,如Version Control and your Database中所述。
一个较弱的选择是在您的解决方案中安装Visual Studio数据库项目,因为VSDB项目具有升级功能,尽管基于差异。它们允许您使用vsdbcmd工具部署.dbschema文件,此工具可以区分和升级现有架构。您可以通过构建转换步骤将VSDB项目输出转换为EF模型(这不是一件容易的事,但可能)。
总的来说,不要将EF(或Linq)建模的诱惑视为模式的主定义。你以后会支付更高的价格。
答案 1 :(得分:0)