实体框架5代码优先迁移:获取数据库脚本

时间:2012-11-09 21:47:33

标签: entity-framework-4 entity-framework-4.1 entity-framework-5 ef-migrations

我在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项目的迁移文件夹中看到一个名为201211091944388_InitialSchema的文件,其中up​​和down方法为空。没有创建MigrationHistory表。

我需要运行什么才能让sql脚本从头开始生成数据库以及我从实体获得的所有表?

谢谢!吉列尔莫。

注意:我在名为UI的解决方案文件夹中名为Data and Web project的解决方案文件夹中有.Data项目,我应该采取任何额外步骤吗?

1 个答案:

答案 0 :(得分:0)

我不知道为什么它不适用于逆向工程,但是我按照所有惯例再次制作了模型并且它有效。

顺便说一句,如果我们在现有数据库上运行enable-migrations命令,它将不会创建__MigrationHistory表,也不会创建初始脚本。这是为避免现有数据库中的更改而设计的。 不管怎样,谢谢。

相关问题