0

私は次のコードを持っています:

public DataInitializer() {
            Database.SetInitializer<DataContext>(null);
            try {
                using (var context = new DataContext()) {
                    if (!context.Database.Exists())
                    {
                        ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                    }
                }

            }
            catch (Exception ex) {
                throw new InvalidOperationException("The Data database could not be initialized", ex);
            }
        }

 public class DataContext : DbContext
    {
        public DataContext() : base("xxdata") { }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }
        public DbSet<Application> Applications { get; set; }
    }

コードをステップ実行するとコードが実行されますが、データベースファイルが作成されていないようです(SQL ServerExpress)。

私が間違っていることは明らかですか?

4

1 に答える 1

1

以下のように継承クラスを作成します。

public class DataContextInitializer : DropCreateDatabaseAlways<DataContext>
    {
        protected override void Seed(DataContext context)
        {
          //Seed data if you want
        }
    }

これをあなたのGlobal.asax

protected void Application_Start()
{
    //Add your database initializer code 
    Database.SetInitializer(new DataContextInitializer());
}
于 2013-03-10T08:07:24.000 に答える