Я в процессе адаптации корзины покупок MVCMusicStore.Я хочу реорганизовать базу данных с помощью EntityFramework, а не через обозреватель сервера.
В папке с моими моделями я создал новую модель FooEntities
.
public class FooStoreEntities : DbContext
{
public DbSet<Foo> Foos { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<FooMaker> FooMakers { get; set; }
public DbSet<Cart> Carts { get; set; }
public DbSet<Order> Orders { get; set; }
public DbSet<OrderDetail> OrderDetails { get; set; }
}
Я также создал дополнительнуюмодели Foo
, FooMaker
и Category
.Другие модели уже существовали в примере MVCMusicStore.
Я создал класс SampleFooData
, который наследуется от DropCreateDatabaseIfModelChanges<FooStoreEntities>
и переопределяет метод seed
для заполнения новых таблиц.
Я изменилметод Application_Start
в Global.asax.cs
, содержащий System.Data.Entity.Database.SetInitializer(new FooStore.Models.SampleFooData());
В файле web.config
, который у меня есть:
<connectionStrings>
<add name="FooStoreEntities"
connectionString="Data Source=|DataDirectory|FooStore.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Где FooStore.sdf
по-прежнему содержит все старые таблицы изприложение MVCMusicStore.
Когда я запускаю веб-приложение, оно достигает точки останова SetInitializer
, однако, похоже, что оно не создает объект SampleFooData
и не создает новые таблицы в базе данных.Что мне не хватает?Или есть что-то фундаментальное, чего я не понимаю?