我想使用自定义数据库初始值设定项来播种一些数据,但无法使其工作。我试着给appConfig文件添加一些配置,但是这也不起作用。在自定义数据库初始值设定项中播种数据将不起作用/ EF,Code First
这是一个WPF应用程序,我不想引用我的EntityLibrary。我想使用上下文的构造函数来播种数据。它出什么问题了?
编辑:问题是没有数据填充。调试时,我看到上下文的构造函数SetInitiazlier函数被调用,但被覆盖的Seed方法永远不会被调用,实际上调试器永远不会进入Seed方法。
与此同时,XAML解析器给出了一个抱怨 DropCreateDatabaseIfModelChanges的TContext类型参数的错误。因为我没有家里的代码,所以我无法给出确切的错误。
这是我的自定义初始化:
public class DbInitializer : DropCreateDatabaseIfModelChanges<DemirbaşContext>
{
protected override void Seed(DemirbaşContext context)
{
Kullanıcı kullanıcı = new Kullanıcı
{
Ad = "Mert",
Soyad = "Mert",
KullanıcıAdı = "admin",
Şifre = "password",
Email = "[email protected]"
};
context.Kullanıcılar.Add(kullanıcı);
context.SaveChanges();
base.Seed(context);
}
}
这是我的上下文构造:
public DemirbaşContext():base("Demirbaş")
{
Database.SetInitializer<DemirbaşContext>(new DbInitializer());
}
编辑1:这里是我当前的代码,但它仍然没有播种数据。你能看到有什么问题吗?
初始化程序:
public class DbInitializer : DropCreateDatabaseIfModelChanges<DemirbaşContext>
{
protected override void Seed(DemirbaşContext context)
{
Kullanıcı kullanıcı = new Kullanıcı
{
Ad = "Mert",
Soyad = "Mert",
KullanıcıAdı = "admin",
Şifre = "password",
Email = "[email protected]"
};
context.Kullanıcılar.Add(kullanıcı);
context.SaveChanges();
}
}
应用程序启动:
public partial class App : Application
{
public App()
{
// Seed data, remove after getting seeding in custom db initiazlier to work
DemirbaşContext context = new DemirbaşContext();
DbInitializer initializer = new DbInitializer();
Database.SetInitializer<DemirbaşContext>(initializer);
context.Database.Initialize(false);
}
}
*我试图使用自定义数据库初始值设定项来播种一些数据,但无法使其工作。我尝试将一些配置添加到appConfig文件,但这也不起作用。*不是对问题的描述。每次我看到*它不工作*没有解释真正发生了什么(例外,没有数据库,没有数据等)我正在考虑downvoting和投票结束这个问题为“不是一个真正的问题”。提出一个好的描述性问题是获得答案的必要步骤。 – 2012-04-14 10:15:19
你说得对。我编辑了这个问题。我希望现在更清楚。 – 2012-04-14 12:36:10
你有没有在你的应用程序中使用过EF?从数据库加载东西或存储到数据库的东西? – 2012-04-14 13:03:14