gpt4 book ai didi

c# - 首次使用 EF6 Code First 运行应用程序时播种数据库出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:33 28 4
gpt4 key购买 nike

我最近升级到 Entity Framework 6,它似乎破坏了数据库的播种。

DataContext.cs

public class DataContext : DbContext
{
public DbSet<BlogSettings> BlogSettings { get; set; }
}

DataContextInitializer.cs

public class DataContextInitializer : CreateDatabaseIfNotExists<DataContext>
{
protected override void Seed(DataContext context)
{
var blogSettings = new BlogSettings()
{
BlogTitle = "My Blog",
MaxBlogsOnHomepageBeforeLoad = 20
};

context.BlogSettings.Add(blogSettings);
context.SaveChanges();
}
}

注意:种子有更多的数据库集和代码,但它看起来完全像这样,并且使用的是以前的版本。

我在 MS SQL Server 中通过数据库创建并创建了一个用户。我添加了连接字符串。然后我去运行应该导致生成表的 web 应用程序,但是我得到这个:

已为上下文“DataContext”启用迁移,但数据库不存在或不包含映射表。使用迁移创建数据库及其表,例如通过从包管理器控制台运行“更新数据库”命令。

我在 Configuration.cs 中将迁移设置为 false,但我没有 _MigrationHistory表。

Configuration.cs 的构造函数

public Configuration()
{
AutomaticMigrationsEnabled = false;
}

我的 web.config 中有这个应该启动初始化: <add key="DatabaseInitializerForType DataContext, Test" value="DataContextInitializer, Test" />

我试过在 <entityFramework> 中添加它在 <contexts> 下我也尝试在 Global.asax.cs 中初始化它无济于事。

Database.SetInitializer(new DataContextInitializer());
using (var context = new DataContext())
{
context.Database.Initialize(true);
}

最佳答案

我们最近添加了一个类,该类通过 AssemblyInfo.cs 在其他任何东西之前运行,它会在初始化器有机会运行之前进行调用。

关于c# - 首次使用 EF6 Code First 运行应用程序时播种数据库出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22921826/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com