спасибо за ваши ответы.Я попытаюсь, но до этого я очень близок к решению с этим кодом:
// many to many add or delete
using (Context context = new Context())
{
var existingCV = (from c in context.CVs
where c.Id == cv.Id select c).FirstOrDefault();
if(formationsIds != null)
{
var clientSideFormations = context.Formations
.Where(t => formationsIds.Contains(t.Id));
var deletedFormations = existingCV.Formations.Except(clientSideFormations).ToList<Formation>();
var addedFormations = clientSideFormations.Except(existingCV.Formations).ToList<Formation>();
deletedFormations.ForEach(c => existingCV.Formations.Remove(c));
foreach (Formation f in addedFormations)
{
existingCV.Formations.Add(f);
}
}
formssIds - это набор идентификаторов образований из формы (связка).Это формации, которые я хочу, чтобы мое резюме имело.
Оно отлично работает, когда существующиеCV.Formation.Count () = 0, но я получаю ошибку 500, когда существующиеCV.Formation.Count ()> 0. В другихсловами, когда в моем резюме уже есть данные в базе данных, код выдает ошибку 500 в строке var addedFormations = ...
Как решить эту проблему, пожалуйста?