Неверное имя объекта при попытке создать новую таблицу - PullRequest
0 голосов
/ 29 декабря 2018

Вчера начал работу с EF6 и уже разочарован.

В любом случае, как показывает мое исследование, EF может создать базу данных, если она не существует, а также может создавать таблицы.Итак, я передал строку подключения к своему DbContext следующим образом:

public CampaignDbContext() : base("Data Source=xx;Initial Catalog=NewTestDb;User ID=xx;Password=xx;")
{ }

Мои модели и весь класс DbContext, скорее всего, здесь неактуальны, поэтому я не добавляю код.В любом случае, мой класс модели называется Campaign, а внутри класса DbContext я объявил очевидное:

public DbSet<Campaign> Campaigns { get; set; }

//Also added this
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
   Database.SetInitializer<CampaignDbContext>(null);
   base.OnModelCreating(modelBuilder);
}

Теперь из моего тестового метода, когда я заполняю Campaigns DbSet и вызываю:

CampaignDbContext.SaveChanges();

Я получил ошибку:

Невозможно открыть базу данных "NewTestDb", запрошенную при входе в систему.Ошибка входа в систему

Еще раз в моей карьере программиста, я в шоке.Те же учетные данные, которые передаются в строке подключения (в классе dbcontext), работают нормально, если в SSMS / примере подключения sql из-за кода, но это не работает здесь.Но когда я создал NewTestDb вручную из SSMS, соединение прошло успешно.Теперь, когда я вызываю SaveChanges метод CampaignDbContext, я получаю:

Неверное имя объекта 'dbo.Campaigns'

Я прошел через тонныТАК сообщения уже и не вижу ничего плохого в моем коде.Может кто-нибудь указать, где я пропускаю / что я делаю не так?

PS Я новичок в EF.

1 Ответ

0 голосов
/ 29 декабря 2018

Благодаря болкай .Я понял.Оказывается, мне нужно было запустить эти конкретные команды из консоли диспетчера пакетов:

enable-migrations
add-migration InitialMigration
update-database

Теперь все работает нормально!Ура! * * 1006

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...