2014-12-25 4 views
0

Приложение не работает, когда я использую это для инициализации объектов в моей БД:объект Initialize в базе данных в Entity Framework Code First

public class MiradorInitializer : DropCreateDatabaseAlways<MiradorContext> 
{ 
    protected override void Seed(MiradorContext context) 
    { 
     Client tom = new Client("Tom", "De Backer"); 
     Booking bookingtom = new Booking("21-02-12", "05-03-12", 450); 
     bookingtom.Client = tom; 

     Client jeroen = new Client("Jeroen", "De Backer"); 
     Booking bookingjeroen = new Booking("01-06-13", "16-09-13", 5460); 
     bookingjeroen.Client = jeroen; 

     context.Bookings.Add(bookingtom); 
     context.Bookings.Add(bookingjeroen); 
     context.SaveChanges(); 
    } 
} 

Но это происходит, когда я инициализировать эти объекты и .SaveChanges в моей основной метод. Что-то не так с моим подходом к инициализатору?

public class Program 
{ 
    private static IEnumerable<Booking> bookings; 

    public static void Main(string[] args) 
    { 
     MiradorContext context = new MiradorContext(); 
     Client tom = new Client("Tom", "De Backer"); 
     Booking bookingtom = new Booking("21-02-12", "05-03-12", 450); 
     bookingtom.Client = tom; 

     Client jeroen = new Client("Jeroen", "De Backer"); 
     Booking bookingjeroen = new Booking("01-06-13", "16-09-13", 5460); 
     bookingjeroen.Client = jeroen; 

     context.Bookings.Add(bookingtom); 
     context.Bookings.Add(bookingjeroen); 
     context.SaveChanges(); 
     Console.ReadKey(); 
     readBookings(context); 
    } 

    public static void readBookings(MiradorContext context) 
    { 
     Console.WriteLine("\n---Opvragen alle bookings---"); 
     var bookings = from b in context.Bookings 
         orderby b.Client.Familienaam 
         select b; 
     foreach (Booking booking in bookings) { 
      Console.WriteLine(booking.Id + ": " + booking.Client.Familienaam + " " + booking.Client.Voornaam+" - Van "+booking.DatumVan+" tot "+booking.DatumTot+" voor "+booking.Prijs+" euro."); 
     } 
     Console.ReadKey(); 
    } 
} 

ответ

0

В вашем классе MiradorContext конструктора убедитесь, что вы установите Инициализатор нравится эта

static MiradorContext() 
{ 
    Database.SetInitializer<MiradorContext>(new MiradorInitializer()); 
} 
+0

Благодаря моей школа курс имел полное объяснение и пример, но эта линия так или иначе была исключена. – ManyQuestions

Смежные вопросы