我经过多次戏剧后运行了Enable-Migrations我终于得到了正确的命令,以便在我的项目中创建Migrations目录。
但是,这是它给我回复的文件..我已将使用语句移到顶部并删除了无效的文件,但这就是我改变的全部内容。
原始代码..错误位于上面的图片链接中。
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" }
// );
//
}
}
答案 0 :(得分:2)
我不知道你哪里出错,但Entity Framework Core中没有Enable-Migrations
命令(或DbMigrationsConfiguration
类)。这些只是实体框架的第6件事。
答案 1 :(得分:1)
首先让我们登上正确的页面......
https://docs.microsoft.com/en-us/ef/core/get-started/uwp/getting-started
其次是不幸的新闻......但似乎有人将其改编成播种功能。 MS的最新版本目前不支持权利,它是生成代码的第二方。它是以前在EF6版本中修改的代码的改编版。另请注意,代码基于Asp.net Core而不是UWP。
答案 2 :(得分:0)
添加using System.Data.Entity.Migrations;
这可以解决您的问题
该错误是因为you have not referenced the library which contains definition for DbMigrationCongfiguration
。
希望这有帮助。
答案 3 :(得分:0)
古老的问题,但我希望它能有所帮助。
尝试在新的EFCore项目中使用一些EF6代码时,我遇到了同样的问题,我使用“ Core”方式进行了许多教程来播种,但我并不满意(我不希望看到迁移中的种子数据...以我的观点,旧的流程,首先是更新架构,然后是种子数据,才有意义。
顺便说一句,我最终得到了最简单(但不是很明显)的解决方案:Startup.cs> Configure method中的种子!
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();
}
}
}
种子将在每次启动时运行(以EF6方式仅在update-database命令之后运行),因此请确保在添加东西之前进行检查!
完成!