Сегодня я вносил изменения в мою модель базы данных. Я изменял его как 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());
И я поставил точку останова в этом методе, и это даже не ударив по нему!
Можете ли вы поделиться своими EF-моделями? Что такое MyDb? Это ваш класс DataContext? Вы имеете в виду, что вы изменили свои модели EF, и теперь вы получаете эту ошибку без обновления базы данных? –
Мои модели EF длиной 600 строк, поэтому это бесполезно, никто не прочитает это. И я имею в виду, что у меня есть эта модель в течение некоторого времени, и всякий раз, когда я делал изменения в ней, это была воссоздание базы данных без ошибок. Теперь у меня ошибка, и я не знаю, что делать. – ojek
И да, MyDb() - мой класс DbContext. – ojek