public Ninja UpdateEquipments(Ninja ninja, List <int> equipments) { using var ctx = new NinjaManagerContext(); ctx.Attach(ninja); ctx.Entry(ninja).Collection(n => n.Equipments).Load(); var equipmentsInNinja = ninja.Equipments.Select(i => i.EquipmentId).ToArray(); foreach (var equipment in ctx.Equipments) { if (equipments.Contains(equipment.Id)) { if (!equipmentsInNinja.Contains(equipment.Id)) { ninja.Equipments.Add(new NinjaEquipment { NinjaId = ninja.Id, EquipmentId = equipment.Id }); } } else if (equipmentsInNinja.Contains(equipment.Id)) { ctx.Remove(ninja.Equipments.FirstOrDefault(ne => ne.EquipmentId == equipment.Id) !); } } ctx.Ninjas.Update(ninja); ctx.SaveChanges(); return(ninja); }
public Ninja Update(Ninja ninja) { using var ctx = new NinjaManagerContext(); ctx.Attach(ninja); ctx.Ninjas.Update(ninja); ctx.SaveChanges(); return(ninja); }
public Equipment Update(Equipment equipment) { using var ctx = new NinjaManagerContext(); ctx.Attach(equipment); ctx.Equipments.Update(equipment); ctx.SaveChanges(); return(equipment); }