Вставьте новую запись с таблицами соединения в Entity Framework Core.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Вставьте новую запись с таблицами соединения в Entity Framework Core.

Сообщение Гость »


У меня есть простой проект, в котором я определяю две модели и соединение между ними. Я опустил все бесполезные поля для вопроса, но в каждой таблице есть ключ.

public class Статья: Таблица { [JsonPropertyName("тело")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] общедоступная строка? Тело {получить; набор; } [JsonPropertyName("теги")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] общедоступный виртуальный ICollection? Теги {получить; набор; } } общественный класс Тег: Таблица { [JsonPropertyName("имя")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] общедоступная строка? Имя {получить; набор; } [JsonPropertyName("статьи")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] публичный виртуальный ICollection? Статьи { получить; набор; } } С помощью Entity Framework Core в приложении ASP.NET Core на базе NET7 были созданы 3 таблицы: Article, Tags и < code>ArticleTag (который я не определил). Таблица ArticleTag имеет два поля (как вы понимаете): ArticleId и TagsId.

Я понимаю цель: статья может иметь более одного тега. Итак, эта таблица связывает две таблицы отношением многие-ко-многим. Кроме того, это то, чем я хочу заниматься.

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


Изображение


На основе этой модели я создал API POST, который получает json для статьи и сохраняет его в базе данных.


Изображение


Функция сохранения в базе данных является общей

public async Task AddAsync (Tentity) { ждут _db.Set().AddAsync(entity); ждут _db.SaveChangesAsync(); возврат объекта; } Когда я вызываю API с действительным json, со всеми данными и списком тегов со всеми подробностями, я получаю ошибку

Microsoft.EntityFrameworkCore.DbUpdateException: произошла ошибка при сохранении изменений объекта. Подробности смотрите во внутреннем исключении.

---> Microsoft.Data.SqlClient.SqlException (0x80131904): невозможно вставить явное значение для столбца идентификаторов в таблице «tbl_Tags», когда Для IDENTITY_INSERT установлено значение OFF.

в Microsoft.Data.SqlClient.SqlConnection.OnError (исключение SqlException, Логическое значение BreakConnection, Action`1 WrapCloseInAction)

в Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException исключение, логическое значение BreakConnection, Action`1 WrapCloseInAction)

в Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, логическое значение callerHasConnectionLock, логическое значение asyncClose)

Очевидно, я понимаю ошибку. Невозможно добавить тот же тег еще раз, и это нормально. Итак, как я могу решить эту проблему?

Нужно ли мне разделить запрос в API и сначала создать Article, а затем добавить запись в ArticleTag? Как добавить новые записи в ArticleTag, если у меня нет модели для этой таблицы? Нужно ли добавлять модель для таблицы ArticleTag?
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Entity Framework Core 3.1 с временными таблицами — доступ к SysStartTime и SysEndTime
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Entity Framework Core 8. Ошибка случайной ссылки на объект FindAsync @ System.Data.Entity.Core.Common.Internal.Materiali
    Anonymous » » в форуме C#
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous
  • Ошибка ASP.NET с таблицами ToListAsync для Entity Framework
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Ошибка ASP.NET с таблицами ToListAsync для Entity Framework
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Ошибка ASP.NET с таблицами ToListAsync для Entity Framework
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

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