C# 实体框架核心启用迁移生成带有错误的Configuration.cs文件

C# 实体框架核心启用迁移生成带有错误的Configuration.cs文件,c#,entity-framework,uwp,template10,C#,Entity Framework,Uwp,Template10,在经历了很多戏剧性的事情之后,我运行了enablemgrations,最终我得到了正确的命令,这样它就在我的项目中创建了Migrations目录 然而,这是它还给我的文件。。我已经将Using语句移到了顶部,并删除了无效的语句,但这就是我所更改的全部内容 原始代码。。错误在上面的图像链接中 internal sealed class Configuration : DbMigrationsConfiguration<RapidDeploy.Models.BloggingContext&g

在经历了很多戏剧性的事情之后,我运行了enablemgrations,最终我得到了正确的命令,这样它就在我的项目中创建了Migrations目录

然而,这是它还给我的文件。。我已经将Using语句移到了顶部,并删除了无效的语句,但这就是我所更改的全部内容

原始代码。。错误在上面的图像链接中

internal sealed class Configuration : DbMigrationsConfiguration<RapidDeploy.Models.BloggingContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = false;
    }

    protected override void Seed(RapidDeploy.Models.BloggingContext context)
    {
        //  This method will be called after migrating to the latest version.

        //  You can use the DbSet<T>.AddOrUpdate() helper extension method 
        //  to avoid creating duplicate seed data. E.g.
        //
        //    context.People.AddOrUpdate(
        //      p => p.FullName,
        //      new Person { FullName = "Andrew Peters" },
        //      new Person { FullName = "Brice Lambson" },
        //      new Person { FullName = "Rowan Miller" }
        //    );
        //
    }
}
内部密封类配置:dbmigtorinsconfiguration
{
公共配置()
{
AutomaticMiggerationsEnabled=假;
}
受保护的覆盖无效种子(RapidDeploy.Models.BloggingContext上下文)
{
//迁移到最新版本后将调用此方法。
//您可以使用DbSet.AddOrUpdate()助手扩展方法
//避免创建重复的种子数据。
//
//context.People.AddOrUpdate(
//p=>p.FullName,
//新人{FullName=“安德鲁·彼得斯”},
//新人{FullName=“Brice Lambson”},
//新人{FullName=“Rowan Miller”}
//    );
//
}
}

使用System.Data.Entity.Migrations添加

这将为您解决问题。
出现错误的原因是
您没有引用包含dbmigerionconfiguration定义的库


希望这能有所帮助。

首先让您进入正确的页面

第二个不幸的消息。。。但似乎有人对其进行了修改,使其具有播种功能。Right not目前在MS的最新版本中不受支持,MS是生成该代码的第二方。这是对先前在EF6版本中的代码的改编。还要记住,代码是基于Asp.net核心而不是UWP的


我不知道您哪里出了问题,但实体框架核心中没有
启用迁移
命令(或
DbMigrationsConfiguration
类)。这只是一个实体框架6的问题。

老问题,但我希望它能有所帮助

我在尝试将一些EF6代码用于一个新的EFCore项目时也遇到了同样的问题,我用“Core”的方式走了很多教程去seed,但我并不满意(我不喜欢在迁移中看到seed数据……在我看来,旧的学校流程,首先更新模式,然后是seed数据,更有意义)

顺便说一句,我最终得到了最简单(但不明显)的解决方案:Startup.cs>Configure方法中的种子

  • 将上下文添加为Configure方法的参数
  • 调用您的SeedData方法
  • 添加/更新数据
  • 种子将在每次启动时运行(在EF6中,只有在更新数据库命令之后才运行),所以在添加内容之前一定要检查


    完成了

    如果我是对的,你说的是带下划线的错误。对吗?你能告诉我你是如何启用迁移的吗?如果你想添加种子,请阅读这篇文章是的,如果你看到它的引用
    Microsoft.EntityFrameworkCore
    不是
    System.Data.Entity
    他已经在使用EntityFrameworkCore了。这是完整的。DBMigRationalConfiguration类的命名空间位于System.Data.Entity.Migrations中。请参考此文件。其适用于实体框架6,而非实体框架核心read@Usman
    Seed
    dbmigrionisconfiguration
    类中的一个函数,可在
    System.Data.Entity.Migrations
    namespace中找到。3年后,这个问题仍然有效,但这个答案真的很让人困惑。这就是我遵循的教程,当我最终能够“启用迁移”时,这就是上面创建的文件。那么你的意思是,为EFCore创建代码的人没有让它知道UWP?
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ... , MyDBContext context)
    {
       ...
       ContextInizializer.SeedData(context);
       ...
    }
    
    public class ContextInizializer
    {
       public static void SeedData(RPToolDBContext context)
       {
    
          var item = new MyEntity()
          {
             Title = "MyTitle",
          };
          if(context.MyEntities.FirstOrDefault(f=>f.Title == item.Title)) {
             context.MyEntities.Add(item);
             context.SaveChanges();
          }
       }
    }