C# 实体框架核心启用迁移生成带有错误的Configuration.cs文件
在经历了很多戏剧性的事情之后,我运行了enablemgrations,最终我得到了正确的命令,这样它就在我的项目中创建了Migrations目录 然而,这是它还给我的文件。。我已经将Using语句移到了顶部,并删除了无效的语句,但这就是我所更改的全部内容 原始代码。。错误在上面的图像链接中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
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@UsmanSeed
是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();
}
}
}