EF: Как обновить связи во многих отношениях? - PullRequest
0 голосов
/ 20 января 2020

У меня есть два класса, которые имеют отношение ко многим. Сообщения и получатели:

[Table("Messages")]
public class Message {
    //...
    public virtual List<Contact> Recipients {get; set;}
}
[Table("Contacts")]
public class Contact {
    //...
    public virtual ICollection<Message> Messages {get; set;}
}

Я устанавливаю их отношение с помощью FluentAPI следующим образом:

modelBuilder.Entity<Contact>().HasMany(e => e.Messages).WithMany(e => e.Recipients)
    .Map(map => { map.ToTable("MessagesRecipients"); });

Когда я создаю объект сообщения с получателями и сохраняю их в дб с dbContext.SaveChanges(); работает отлично. Соответствующий идентификатор сообщения и идентификатор получателя сохраняются в таблице MessagesRecipients. Проблема возникает, когда я пытаюсь изменить коллекцию получателей в сообщении (добавить нового или удалить существующего получателя). В таблице MessagesRecipients ничего не происходит. Я хотел бы обновить также и соединения, а не только само сообщение.

Я получаю сообщение из базы данных с быстрой загрузкой.

Чего мне не хватает для достижения ожидаемого поведения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...