首页 > 解决方案 > 不调用种子方法

问题描述

我有一个奇怪的问题,我的Seed方法没有被调用。我调试这个项目已经很长时间了,但据我所知,这是可行的。没有调用我的Seed方法可能有什么问题?以下是用于调查的代码。

应用程序_开始

protected void Application_Start()
{
      Database.SetInitializer<MusicContextSqlServer>(new MusicStoreDataContextInitializer());
      
      AreaRegistration.RegisterAllAreas();
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
      RouteConfig.RegisterRoutes(RouteTable.Routes);
      BundleConfig.RegisterBundles(BundleTable.Bundles);
}

MusicStoreDataContextInitializer

public class MusicStoreDataContextInitializer : DropCreateDatabaseAlways<MusicContextSqlServer>       
    {
        protected override void Seed(MusicContextSqlServer context)
        {
            var artist = new Artist() {Name = "First Artist", HireDate = DateTime.Now};
            context.Artist.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.Artist.Add(new Artist() {Name = "Second artist", HireDate = DateTime.Now }),
                Title = "Third Album"
            });

            context.Artist.Add(new SoloArtist() {Name = "Solo Artist", Instrument = "Guitar", HireDate = DateTime.Now });

            context.SaveChanges();

        }
    }

MusicContextSqlServer:

public class MusicContextSqlServer : DbContext
    {
        public DbSet<Album> Albums { get; set; }
        public DbSet<Artist> Artist { get; set; }
        public DbSet<SoloArtist> Artists { get; set; }
        public DbSet<ArtistDetails> ArtistDetails { get; set; }

        public MusicContextSqlServer()
            : base("name=MusicContextSqlServer")
        {
            Database.Log = s => Debug.WriteLine(s);
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
             
        }
    }

网页配置

<connectionStrings>
    <add name="MusicContextSqlServer" connectionString="data source=(local);initial catalog=MusicStore;user id=sa;password=pass;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
  </connectionStrings>

标签: c#asp.netentity-framework

解决方案


推荐阅读