Создайте данные для таблицы отношений «многие ко многим» в ASP.NET Core MVC.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Создайте данные для таблицы отношений «многие ко многим» в ASP.NET Core MVC.

Сообщение Anonymous »


Я создаю теги для сообщений на своем веб-сайте, используя связь «многие ко многим». Мне удалось создать таблицу базы данных PostTags с помощью Entity Framework, следуя документации Microsoft.

Теперь я хочу вставить данные тега в базу данных с помощью контроллера и ViewModel при создании сообщения, но понятия не имею, как это сделать.

Репозиторий GitHub

Мой код и то, что я пробовал –

Модели:

публичный класс PostModel { [Ключ] общественный ИНТ Id {получить; набор; } общедоступная строка? Название {получить; набор; } общедоступные теги List {get; набор; } общественный список PostTags {get; набор; } } публичный класс TagModel { [Ключ] общественный ИНТ Id {получить; набор; } общедоступная строка? Название {получить; набор; } общественный список сообщений {get; набор; } общественный список PostTags {get; набор; } } общедоступный класс PostTagModel { общественный ИНТ PostId {получить; набор; } общественный ИНТ TagId {получить; набор; } общественная PostModel Post {получить; набор; } общественный тег TagModel {get; набор; } } DatabaseContext.cs:

публичный класс DatabaseContext: DbContext { public DatabaseContext(параметры DbContextOptions): base(options) { } public DbSet Сообщения {get; набор; } public DbSet Теги {get; набор; } общественный DbSet PostTags {get; набор; } защищенное переопределение void OnModelCreating (ModelBuilder modelBuilder) { modelBuilder.Entity() .HasMany(e => e.Tags) .WithMany(e => e.Posts) .UsingEntity(); } } ViewModel:

публичный класс CreatePostViewModel { общедоступная строка? Название {получить; набор; } публичный интервал? Идентификатор тега {получить; набор; } общественный список TagList {get; набор; } } Контроллер:

CS0029: Невозможно неявно преобразовать тип 'int?' в 'System.Collections.GenericList

[HttpGet] общедоступный IActionResult Create() { // Инициализация тегов для просмотра вернуть просмотр(); } [HttpPost] [ВалидатеАнтиФоржериТокен] public IActionResult Create (CreatePostViewModel postVM) { если (ModelState.IsValid) { вар сообщение = новая PostModel { Заголовок = postVM.Title, Tags = postVM.TagId // CS0029: невозможно неявно преобразовать тип 'int?' в 'System.Collections.GenericList }; _postInterface.Add(сообщение); вернуть RedirectToAction("Индекс"); } еще { // Ошибка } вернуть представление (postVM); } Просмотр:
@using SimpleWebsite.ViewModels.PostViewModel @model CreatePostViewModel @foreach (элемент var в Model.TagList) { @item.Title }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»