我很抱歉我的英语。这是我的第一个问题。对不起,我是Web开发的新手。请帮忙。
我尝试过Code First。
在我的个人用户帐户身份验证的MVC项目中,我创建了Model。
然后我为这个模型创建了Context。
然后我创建了ContextInitializer,它继承自DropCreateDatabaseAlways<>像
env CRYPTOGRAPHY_OSX_NO_LINK_FLAGS=1 LDFLAGS="$(brew --prefix openssl)/lib/libssl.a $(brew --prefix openssl)/lib/libcrypto.a" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography
然后我在Global.Asax.cs文件中插入Application_Start()
class MusicStoreDataContextInitializer : DropCreateDatabaseAlways<MusicStoreDataContext>
{
protected override void Seed(MusicStoreDataContext context)
{
Artist artist = new Artist() { Name = "First Artist" };
context.Artists.Add(artist);
context.Albums.Add(new Album() { Artist = artist, Title = "First Album" });
context.Albums.Add(new Album() { Artist = artist, Title = "Second Album" });
context.Albums.Add(new Album()
{
Artist = context.Artists.Add(new Artist() { Name = "Second Artist" }),
Title = "Third Album"
});
context.SaveChanges();
}
}
和My Seed()方法不起作用。当我在调试模式下在Seed()中放置断点时,程序流不会进入此Seed()方法。
我尝试在Global.Asax.cs文件中执行类似
的操作Database.SetInitializer(new MusicStoreDataContextInitializer());
没有调用Seed()。并且表信息没有改变。
答案 0 :(得分:1)
据我所知,问题是使用EF 6并使用迁移器和初始化程序。这导致了错误。
当我重新创建没有任何
的项目时PM> Enable-Migration
包管理器控制台中的命令一切正常。)
重建数据库并播种新数据。
如果我的经历能帮助任何人,我会很高兴。
现在我想花更多时间更深入地了解迁移。