Как создать отношения (один-к-одному, многие-ко-многим) для модели ASP. Net Identity Users - PullRequest
0 голосов
/ 23 апреля 2020

Мне нужно создать 2 отношения для Identity.User

  1. Один-к-одному (я знаю, это так плохо, но мне это нужно)

Для Например, для установки дополнительных пользовательских характеристик.

Многие-ко-многим

Например, для модели Книги. Пользователь может иметь много книг, и книга может быть со многими пользователями. Как в библиотеке.

Как я могу это сделать. Спасибо.

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Прежде всего. Многие-многие иностранные ключи не поддерживаются на SQL сервере. Единственный способ добиться этого (по крайней мере, единственный известный мне способ) - создать таблицу «отображения».

Таким образом, вам нужны три таблицы: Пользователь, Книги и Книги пользователя.

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

Вот учебник Многие ко многим о том, как это сделать.

Вот Другой учебник

Второй показывает схему таблицы. Это довольно часто.

Надеюсь, это поможет вам достичь вашей цели.

0 голосов
/ 23 апреля 2020

Вы можете наследовать от IdentityUser и передавать свой пользовательский объект, который наследует от него, в IdentityDbContext<>. Тогда ваш пользовательский объект может иметь дополнительные элементы, которые вам нужны, включая коллекцию книг или особые свойства.

Затем вы определяете отношение при переопределении OnModelCreating, как указано здесь

В качестве грубого примера:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<CustomUser>()
        .HasOne(p => p.Name)
        .WithMany(b => b.Books);
}

Надеюсь, это поможет.

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