2013-02-11 1 views
0

Сегодня я вносил изменения в мою модель базы данных. Я изменял его как 2 часа, не компилируя его.EF Code First - «Ссылка на объект не установлена ​​в экземпляр объекта». во время создания базы данных

Итак, у меня есть это в моем приложении:

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDb>()); 

И обычно, когда я делал изменения в моей модели, это было достаточно, чтобы сделать это:

var tmp = new MyDb(); 
tmp.Categories.Any(); 

И модель воссоздает себя , Но теперь, после того, как я изменил мою модель, я получаю сообщение об ошибке:

Object reference not set to an instance of an object.

У меня совершенно не знают, что это значит, так как я вызов MyDB(), так что этот экземпляр установлен. Что здесь происходит? Как я могу проверить, что не так?

Редактировать: Вещь, которую я обнаружил сейчас, заключается в том, что она даже не пытается воссоздать базу данных. Я поставил это:

public class MyDatabaseInitializer : DropCreateDatabaseIfModelChanges<ScykDb> 
    { 
     protected override void Seed(ScykDb context) 
     { 
      base.Seed(context); 
      (code...) 
     } 
    } 

В мой Application_Start:

Database.SetInitializer(new MyDatabaseInitializer()); 

И я поставил точку останова в этом методе, и это даже не ударив по нему!

+0

Можете ли вы поделиться своими EF-моделями? Что такое MyDb? Это ваш класс DataContext? Вы имеете в виду, что вы изменили свои модели EF, и теперь вы получаете эту ошибку без обновления базы данных? –

+0

Мои модели EF длиной 600 строк, поэтому это бесполезно, никто не прочитает это. И я имею в виду, что у меня есть эта модель в течение некоторого времени, и всякий раз, когда я делал изменения в ней, это была воссоздание базы данных без ошибок. Теперь у меня ошибка, и я не знаю, что делать. – ojek

+0

И да, MyDb() - мой класс DbContext. – ojek

ответ

1

Хорошо. Для любого, кто входит сюда, вот решение:

Я понятия не имею, как это работает, но я прокомментировал ВСЕ мои атрибуты [ForeignKey] и ВСЕ мою текущую конфигурацию api. Затем я начал проект и исправил ошибки, которые он выбрасывал, используя ТОЛЬКО беглое api. Это помогло. Сейчас все работает отлично.

3

Я просто столкнулся с этим, и у меня не было раньше. Это заставило меня замочить, пока я не понял, что делаю. Если у вас есть модель, которая имеет список для другой модели, убедитесь, что конструктор на вашей модели инициализирует список.

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