@Mindgrow

Как обновлять не создавая связанные данные добавляемой сущности при соединении ManyToMany (EF CORE 5)?

Добрый день!

Есть сущность Event которая может быть связана с множеством Tag через поле Tags. Один Tag может быть связан с множеством Event.

При сохранении Event, в котором указаны тэги, которые уже были ранее созданы - происходит ошибка:
SqlException: Violation of PRIMARY KEY constraint 'PK_Tags'. Cannot insert duplicate key in object 'dbo.Tags'. The duplicate key value is (asdasdffads). The statement has been terminated.


Что не правильно я делаю и как это исправить?
Использую EF Core 5

Сущности
public  class Event
{
[Key]
public long EventId {get;set;]
public virtual ICollection<Tag> Tags { get; set; }
}

public class Tag
{
[Key]
public string Title {get;set;}
public virtual ICollection<Event> Events { get; set; }
}


FluentAPI
modelBuilder.Entity<Event>()
                .HasMany(e => e.Tags)
                .WithMany(e => e.Events);


Создание/Сохранение
Event eventDT = _mapper.Map<Event>(eventVM);
                eventDT.CreatedDate = DateTime.Now;
                eventDT.CreatorId = _httpContextAccessor.GetUsername();

                _db.Events.Add(eventDT);                
                _db.SaveChanges();
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
igolets
@igolets
Программист C#, MSSQL
Боюсь, придется сбегать в БД и получить объекты БД для тех тэгов, которые уже есть в базе. Либо сохранять через хранимку и в ней уже проверять, есть такой тэг в базе, или нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы