Как устранить проблему блокировки / взлома в Entity Framework Model Builder? - PullRequest
0 голосов
/ 05 января 2019

Я чувствую, что могу что-то сделать, но я далеко не хороший программист, и это меня раздражает.

Используя Entity Framework Core, я создаю проект, и мне просто нужно было построить отношения многие ко многим, что требовало от меня использования Fluent API для правильной установки целей.

В тот момент, когда я это сделал, я не смог скомпилировать проект или действительно что-то сделать, так как существующая в проекте структура идентификации по умолчанию мешала. Ошибка была:

The entity type 'IdentityUserLogin<string>' requires a primary key to be defined.

Я потратил немало времени, пытаясь отладить эту проблему, но безуспешно. После быстрого поиска я нашел этот вопрос , который, хотя и не совсем моя проблема (у меня есть один DbContext), решил добавить следующее:

base.OnModelCreating(modelBuilder);

В тот момент, когда я сделал это, проект скомпилировался, и все заработало как положено.

Итак, мой вопрос на самом деле - почему? Может кто-нибудь объяснить, что происходит, почему это происходит, но, что более важно, здорово, что переполнение стека существует, и я смог получить ответ, но, если вы начинающий программист, как бы вы поняли и диагностировали эту проблему?

Я чувствую, что пока переполнение стека отлично подходит для получения ответов, я ленива и очень хочу узнать, почему все происходит так, как они есть.

1 Ответ

0 голосов
/ 05 января 2019

Похоже, это ответ на ваш вопрос почему. Не уверен в том, как вы будете знать, как начинающий программист, надеюсь, кто-то может предоставить более глубокое понимание.

Все конфигурации для ваших сущностей идентичности определены в IdentityDbContext. Поэтому, если вы создаете свой собственный контекст ApplicationDbContext, который наследуется от IdentityDbContext, вам нужно вызвать эту строку base.OnModelCreating (modelBuilder); перед добавлением конфигураций для собственных сущностей

Stackoverflow Ответ

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