Добавить новую таблицу в приложение ASP .NET Core MVC с удостоверением

У меня вопрос о создании новой таблицы в приложении ASP.NET Core MVC. Я создал его с помощью «Индивидуальных учетных записей пользователей», поэтому у меня есть таблицы идентификаторов в БД.

Как я могу создавать свои собственные таблицы в этой БД? Должен ли я создать новый контекст БД?

Например: я хочу создать таблицы для студентов и вопросов (и их ответов).

Используйте другой DbContext для своих таблиц / классов.

Nikolaus 16.04.2018 14:04

@Nikolaus Хорошо, не могли бы вы мне помочь? Где в ApplicationDbContext.cs мне добавить новый контекст? Буду очень признателен за любые ссылки по этому поводу.

Алексей 16.04.2018 14:08

@ Алексей, вам может понадобиться следовать этому руководству: docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/…

Atlasmaybe 16.04.2018 14:47

Что касается комментариев / ответов других, где именно ваша проблема, вам нужно определить классы, используемые в вашем DbContext, ... Что у вас есть (код)?

Nikolaus 16.04.2018 15:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
5 950
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

  1. Создавайте свои модели:

    Предположим, у вас есть следующая модель:

    public class Post{
    
      public int Id {get; set;}
      public string Name {get; set;}
    
    }
    
  2. в корневом каталоге создайте папку с именем Persistence (или вы можете называть ее как хотите)

  3. Внутри папки сохраняемости добавьте такой класс

    public class MyDbContext : DbContext {
    
        public DbSet<Post> Posts {get; set;}
        public MyDbContext((DbContextOptions<MyDbContext> options)
         : base (options)
        {
    
        }
    }
    
  4. Теперь в Startup.cs добавьте эту строку к функции ConfigureServices:

    services.AddDbContext<MyDbContext>(options => options.UseSqlServer("connStr"));

  5. Теперь пришло время создать вашу первую миграцию с помощью dotnet cli.

dotnet ef migrations add AddPostsTable --context MyDbContext

Найти больше на: документы здесь

Ответ принят как подходящий

Поскольку вы уже сказали, что использовали шаблон идентификатора Individual User Accounts, вы можете просто добавить в него свои собственные модели, например:

 public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, Guid>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);
            //....
        }
    public DbSet<Student> Students{ get; set; }
    public DbSet<Question> Questions { get; set; }
    public DbSet<Answer> Answers { get; set; }
    //....
    }

Чтобы добавить / запустить миграции после новых изменений - В меню «Инструменты» найдите Package Console Manager в разделе Nuget Console Manager. Выберите проект с вашим ApplicationDbContext и запустите команды, как показано на снимке экрана.

Итак, я добавил эти классы и их DbSet. Я обновляю базу данных, и все вроде нормально. Где я могу найти созданные таблицы? В SQL Server Obj.Manager у меня есть только таблицы идентификации.

Алексей 17.04.2018 16:29

Вы создавали / запускали миграции?

Felix Too 17.04.2018 16:37

Нет, не могли бы вы рассказать об этом?

Алексей 17.04.2018 16:39

Вау, m8, спасибо за внимание и время. Вы сэкономили мне огромное количество времени. P.S. Я пробовал использовать команду «Добавить миграцию» без символа «-», поэтому она не работает.

Алексей 17.04.2018 16:53

@FelixToo Я пытаюсь перейти с ef6 на efcore, но, похоже, для меня отключение ... есть ли какие-либо статьи / ссылки gd, где можно настроить организованный свободный код построителя, а что нет ... код ef6 сначала казался лучше в этом внимание. Спрашивая, когда я получаю вышеуказанное, и надеюсь, что вы потратили на это больше времени, чем на меня, так что, возможно, вы можете показать / сказать мне, что работает ..

Seabizkit 13.02.2020 15:34

Другие вопросы по теме