EF 6如何在生成迁移时跳过现有表

时间:2014-07-30 06:25:13

标签: entity-framework ef-code-first

我正在尝试在现有项目中使用代码优先。我想从我为新实体生成的迁移中排除现有实体。

我将所有模型都放在单独的类库项目中,例如Data.Models和我打算通过创建另一个类库来使用一个上下文,例如Infra.EF(模型项目在其中引用)。

这就是我的DbContext的样子:

    public DbSet<ExistingEntityOne> DataOfEntityOne { get; set; }
    public DbSet<ExistingEntityTwo> DataofEntityTwo { get; set; }
    public DbSet<NewEntity> NewData { get; set; }

很抱歉,如果问题不清楚,但我可以根据您的反馈添加更多信息。

感谢。

1 个答案:

答案 0 :(得分:4)

  1. 从项目中删除迁移目录。
  2. 在新DbContext中评论新实体。

    public DbSet<ExistingEntityOne> DataofEntityOne { get; set; }
    public DbSet<ExistingEntityTwo> DataofEntityTwo { get; set; }
    //public DbSet<NewEntity> NewData { get; set; }
    
  3. 运行以下命令在电源控制台管理器中:

    Enable-Migrations
    Add-Migration somename -IgnoreChanges
    
  4. 取消注释,评论实体。

    public DbSet<ExistingEntityOne> DataofEntityOne { get; set; }
    public DbSet<ExistingEntityTwo> DataofEntityTwo { get; set; }
    public DbSet<NewEntity> NewData { get; set; }
    
  5. 运行以下命令:

    Add-Migration someOtherName
    
  6. 您可以在EF迁移here

    中找到更多信息