ASP. NET Исходные данные ядра Identity не сохраняются в базе данных. - PullRequest
0 голосов
/ 21 февраля 2020

У меня новый проект ASP. NET RazorPages. Я переопределил IdentityUser и теперь пришло время добавить некоторые базовые данные.

Невозможно сделать это в SQL, потому что это не может иметь sh пароль, поэтому он должен быть сделано через C#.

Существует много дезинформации о «начальных данных», но у меня нет ничего, чтобы работать.

Единственное, что я могу думать, это добавить метод в Startup.cs, который проверяет, есть ли базовые данные, а если нет, то добавьте их. Это действительно так?

Много говорят о миграциях, но я не вижу ничего в классе Migration для добавления начальных данных.

Точно так же много упоминания о Entity<Foo>().HasData(new Foo(...)), и я попробовал это, однако данные фактически не добавляются в базу данных.

Что я должен делать?

1 Ответ

0 голосов
/ 21 февраля 2020

Как правило, чтобы прояснить некоторые вещи

Много говорят о миграциях, но я не вижу ничего в классе Migration для добавления начальных данных.

Миграции - это схема БД. Когда вы вносите изменения в таблицу, добавляете столбцы удаления и т. Д. c, необходимо применить миграции для обновления вашей схемы. Таким образом, это не имеет ничего общего с данными, за исключением того факта, что некоторым миграциям может потребоваться особая осторожность (например, создание столбца Nullable Не ноль).

Что я должен делать?

Вы хотите начать сохранять данные в свою БД, как обычно. Создайте класс или другую библиотеку классов, которая будет отвечать за заполнение ваших данных, и вы будете вызывать их из Startup.cs. Пример того, как код будет выглядеть для простого примера.

var foos = new List<Foo>()
{
   new Foo(1), new Foo(2)
}

services.AddFoos(foos);

Вы хотите использовать свои сервисы (я предполагаю, что вы используете внедрение зависимостей), поэтому просто создайте их экземпляры и затем вызовите их. Например, вы можете использовать класс usermanager для вставки данных.

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