Ошибка Entity Framework: SqlException: невозможно вставить явное значение для столбца идентификаторов в таблице SiteCateC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка Entity Framework: SqlException: невозможно вставить явное значение для столбца идентификаторов в таблице SiteCate

Сообщение Anonymous »


у меня есть три таблицы: Tags, TagCategories и SiteCategory

Категории тегов имеют два столбца: один является индексом тегов, а другой — индексом категории SiteCategory. это означает, что между тегами и SiteCategory существует связь многие-ко-многим.

Когда я создаю каркас для своей базы данных в проекте .net core 8, каркас строит две модели: одну для тегов, а другую для SiteCategory.

и построитель моделей:

Тег

modelBuilder.Entity(entity => { entity.HasKey(e => e.Indx); сущность.Свойство(е => e.Tag1) .HasMaxLength(50) .HasColumnName("Тег"); сущность.HasMany(d => d.Categories).WithMany(p => p.Tags) .UsingEntity( "Категория тегов", r => r.HasOne().WithMany() .HasForeignKey("CategoryId") .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_TagCategories_SiteCategory"), l => l.HasOne().WithMany() .HasForeignKey("TagId") .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_TagCategories_Tags"), j => { j.HasKey("TagId", "CategoryId"); j.ToTable("Категории тегов"); j.IndexerProperty("TagId").HasColumnName("TagID"); j.IndexerProperty("CategoryId").HasColumnName("CategoryID"); }); }); Категория сайта:

modelBuilder.Entity(entity => { entity.HasKey(e => e.Indx); entity.ToTable("SiteCategory"); entity.Property(e => e.Category).HasMaxLength(18); entity.Property(e => e.ShowInSystem) .Требуется() .HasDefaultValueSql("((1))"); }); Я пытаюсь создать и добавить новый тег, и у меня есть индекс siteCategory, поэтому я хочу добавить его в Таблица TagCategories

моя функция:

public bool addTagAndTagCategory (тег тега, int? CategoryID) { пытаться { вар siteCat = db.SiteCategories.Where(cat => cat.Indx == CategoryID).FirstOrDefault(); siteCat.Tags.Add(тег); db.Add(тег); //var TagCategory = новый словарь // { // { "Идентификатор тега", tag.Indx }, // { "CategoryId", siteCat.Indx } // }; //db.Attach(TagCategory); БД.СохранитьИзменения(); var res = tag.Indx != 0 ? правда: ложь; вернуть разрешение; } ловить { бросать; } } Я получаю сообщение об ошибке: SqlException: невозможно вставить явное значение для столбца идентификаторов в таблице SiteCategory, если для IDENTITY_INSERT установлено значение OFF.
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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