Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я вызываю events.Tags.Add (tag) и вызываю Save изменения в контексте, в итоге создается новая информация о теге в таблице Tags вместо простой вставки EventId и TagId в Таблица EventTags.
Основываясь на приведенных ниже данных, как добавить событие и тег в таблицу EventTags. Допустим, я хочу добавить событие с Id = 2 и пометить Id = 1 в таблице EventTags.
У меня есть следующие сущности.
public class Event
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
}
public class Tag
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Event> Events { get; set; }
}
public class EventConfiguration : EntityTypeConfiguration<Event> {
public EventConfiguration () {
ToTable("Events");
HasKey(x => x.Id).Property(x => x.Id).HasColumnName("Id").IsRequired();
Property(x => x.Name).HasColumnName("Name").IsRequired();
HasMany(x => x.Tags)
.WithMany(x => x.Events)
.Map(m => {
m.ToTable("EventTags");
m.MapLeftKey("EventId");
m.MapRightKey("TagId");
});
}
}
public class TagConfiguration : EntityTypeConfiguration<Tag> {
public TagConfiguration () {
ToTable("Tags");
HasKey(x => x.Id).Property(x => x.Id).HasColumnName("Id").IsRequired();
Property(x => x.Name).HasColumnName("Name").IsRequired();
}
}
/*
These are the records in my many to many tables
--------------
Events Table
--------------
Id Name
1 Test1
2 Test2
--------------
EventTags
-------------
EventId TagId
1 2
-------------
Tags
------------
Id Name
1 MVC
2 C#
*/