Entity Framework 5 Code First 迁移:获取数据库脚本
Posted
技术标签:
【中文标题】Entity Framework 5 Code First 迁移:获取数据库脚本【英文标题】:Entity Framework 5 Code First Migrations: Get database script 【发布时间】:2012-11-09 21:47:32 【问题描述】:我有一个遵循John Papa about SPA 课程的项目。 所以,我的架构如下:
**proj.Data.Data**
/Configuration
Mappings of the entities with Fluent
ProjContext.cs
ProjInitializer.cs
EFRepository.cs
/Migrations folder
**proj.Data.Model**
Pocos (Entity Framework 5 Code First)
No reference to Entity Framework
**proj.Data.Contracts**
Interface for IRepository and IProjContext
**proj.UI.Web**
MVC 4/WebApi project
我有一个现有的数据库,我运行了实体框架的逆向工程来获取实体并将上下文与实体分离(在两个不同的项目中,如上所示)
然后我跑了(从 PackageManager 控制台下拉菜单中选择 proj.Data.Data):
Enable-Migrations -force -StartupProjectName "Proj.Data.Data"
add-migration InitialSchema
Update-Database
Update-Database -Script -SourceMigration $InitialDatabase
我只在 proj.Data.Data 项目的 Migrations 文件夹中看到一个名为 201211091944388_InitialSchema 的文件,其中 up 和 down 方法为空。没有创建 MigrationHistory 表。
我需要运行什么来获取 sql 脚本以从头开始使用我从实体中获得的所有表生成数据库?
谢谢!吉列尔莫。
注意:我在一个名为 Data 的解决方案文件夹中有 .Data 项目,在一个名为 UI 的解决方案文件夹中有 Web 项目,因此我应该采取任何额外的步骤吗?
【问题讨论】:
没试过,你可以试试在最后一行加-TargetMigration InitialSchema
【参考方案1】:
我不知道为什么它不适用于逆向工程,但我按照所有惯例再次制作了模型并且它起作用了。
顺便说一句,如果我们在现有数据库上运行 enable-migrations 命令,它不会创建 __MigrationHistory 表或 Initial 脚本。这是为了避免更改现有数据库而设计的。 无论如何,谢谢。
【讨论】:
以上是关于Entity Framework 5 Code First 迁移:获取数据库脚本的主要内容,如果未能解决你的问题,请参考以下文章
Entity Framework 5 Code First 迁移:获取数据库脚本
Entity Framework 5.0系列之自动生成Code First代码
Entity Framework 5 Code First 到现有 Informix 数据库
将相关数据添加到 Entity Framework 5 (Code-First) 中的交叉引用表