gpt4 book ai didi

c# - 未调用 Entity Framework 种子

转载 作者:行者123 更新时间:2023-11-30 23:25:38 28 4
gpt4 key购买 nike

我在使用数据库初始化程序时遇到问题 - 从未调用过种子方法。类似的代码在另一个项目中工作,所以我很困惑为什么他们这次不工作。

这是我的代码:

RecipeContext.cs

    public class RecipeContext : DbContext
{
public RecipeContext() : base("DefaultConnection")
{
}

public DbSet<Recipe> Recipes { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}

public static RecipeContext Create()
{
return new RecipeContext();
}
}

RecipeInitialiser.cs

    public class RecipeInitialiser : DropCreateDatabaseAlways<RecipeContext>
{
protected override void Seed(RecipeContext context)
{
var recipes = new List<Recipe>
{
new Recipe {
Name = "Spag Bol",
Ingredients = "1. This\n2. That\n3. This too",
Method = "1. Do this\n2. Do that\n3. And this too",
PrepTime = new TimeSpan(0, 45, 0),
CookTime = new TimeSpan(1, 45, 0),
Difficulty = 1,
Serves = 6,
DateCreated = DateTime.Now
},
};

recipes.ForEach(r => context.Recipes.Add(r));
context.SaveChanges();
base.Seed(context);
}
}

Web.config

<entityFramework>
<contexts>
<context type="WebRecipes.DataLayer.RecipeContext, WebRecipes.DataLayer">
<databaseInitializer type="WebRecipes.DataLayer.Models.RecipeInitializer, WebRecipes.DataLayer" />
</context>
</contexts>
...other_settings
</entityframework>

为什么这篇文章与可能的重复文章不同:

  • 正如 Leandro Gabriel Casas 所指出的,我的 Web.config 文件中确实有一个拼写错误

我尝试过的

  • 在 seed 方法设置断点,显示 seed 方法从未被调用
  • 我试过在 Stack Overflow 上查找 herehere但我一直没能看出哪里出了问题

最佳答案

看来你打错了。

你的初始化类名是

RecipeInitialiser

在你的配置中

<databaseInitializer type="WebRecipes.DataLayer.Models.RecipeInitializer, WebRecipes.DataLayer" />

关于c# - 未调用 Entity Framework 种子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37164444/

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