gpt4 book ai didi

c# - 未调用 DropCreateDatabaseAlways 种子

转载 作者:可可西里 更新时间:2023-11-01 08:40:44 27 4
gpt4 key购买 nike

我在获取要在我的自定义数据库初始值设定项上调用的 Seed 方法时遇到问题。我正在使用 EF 5.0 并具有以下代码:

public static class MyDatabase
{
public static void Initialize()
{
Database.SetInitializer(new MyInitializer());
}
}

public class MyInitializer : DropCreateDatabaseAlways<MyContext>
{
protected override void Seed(MyContext context)
{
base.Seed(context);
context.Roles.Add(new Role
{
ID = 1,
Name = "User",
});
context.Roles.Add(new Role
{
ID = 2,
Name = "Admin",
});
context.SaveChanges();
}
}

这两个类存在于与 MVC 应用程序分开的类库中。在 Global.asax 中,我调用了 Initialize() 方法:

MyDatabase.Initialize();

数据库创建得很好,只是 Seed(MyContext context) 方法没有被调用,没有数据被放入我的数据库。

最佳答案

您的数据库将在您使用上下文或您始终可以通过在 Global.asax.cs 的 Application_Start() 方法中使用您的上下文来强制创建它,例如:

  System.Data.Entity.Database.SetInitializer(new MyInitializer());
MyContext db = new MyContext();
db.Database.Initialize(true);

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

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