Как добавить таблицы и отношения в сгенерированную базу данных Asp. Net Core MVC Identity? - PullRequest
0 голосов
/ 20 июня 2020

У меня есть проект, в котором мне нужно создать ASP. NET Core MVC веб-приложение, в которое я должен включить регистрацию пользователя, логин и SQL базу данных с базовыми c операциями CRUD и соответствующие представления. Для входа и регистрации я решил использовать Asp. Net Core Identity, следуя этому руководству: https://youtu.be/CzRM-hOe35o. Все работает и выглядит нормально для регистрации и входа в систему, но я не могу понять, как использовать мою базу данных с базой данных, созданной Identity. Моя идея для базы данных проекта заключалась в том, чтобы иметь таблицу для пользователя и статьи (есть еще таблицы, но я собираюсь упростить объяснение моей проблемы) с отношением один ко многим. Теперь, когда у меня есть сгенерированная база данных для всех вещей о пользователях (из учебника по идентификации), как я могу включить эту таблицу статей в базу данных и установить связь «один ко многим» между AspNetUsers и статьей? Или я могу использовать в своем проекте две базы данных: одну с пользователями, а другую с другими таблицами проекта? Но тогда как наладить связи между таблицами из разных баз данных, и возможно ли это вообще?

1 Ответ

2 голосов
/ 22 июня 2020

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

Чтобы делать то, что вы хотите, выполните следующие шаги:

Шаг 1. Создайте класс с именем «Пользователь» в папке проекта под названием «Данные». Класс будет выглядеть следующим образом:

public class User : IdentityUser
{
   
}

Шаг 2. Создайте еще один класс под названием «Article» в той же папке под названием «Data».

 public class Article
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public virtual User User { get; set; }
}

Step 3 - Go to Класс «Пользователь», который вы создали на первом шаге, и отредактируйте его так, чтобы он выглядел так:

 public class User : IdentityUser
{
    public virtual ICollection<Article> Articles { get; set; }
}

Шаг 4 - В той же папке, куда вы добавили эти два класса, у вас есть еще один класс под названием «ApplicationDbContext». Откройте его и зарегистрируйте классы User и Article.

 public class ApplicationDbContext : IdentityDbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Article> Articles { get; set; }
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
}

Шаг 5 - удалите в вашей локальной базе данных существующую базу данных, созданную ранее из вашего проекта. После этого «Добавить-миграцию» и «Обновить-базу данных»

Для получения дополнительной информации о том, как работает Entity Framework Core, перейдите по ссылке: https://www.learnentityframeworkcore.com/conventions/one-to-many-relationship#: ~: text = The% 20easiest% 20way% 20to % 20configure, общедоступный% 20class% 20 Автор

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