J'ai ce code:Ajout d'une collection, boucle nécessaire?
Schedule s = _entities.Schedules.Where(x => x.ScheduleID == schedule.ScheduleID && x.BookingObject.BookingObjectID == bookingObjectID).FirstOrDefault();
if(s == null)
s = new Schedule();
s.ScheduleStart = schedule.ScheduleStart;
s.ScheduleEnd = schedule.ScheduleEnd;
foreach (var t in schedule.Timetables)
{
s.Timetables.Add(t);
}
_entities.AddToSchedules(s);
_entities.SaveChanges();
Exception: System.InvalidOperationException
le calendrier d'objet est transmis en tant que paramètre
EDIT:
changé:
Schedule sh = new Schedule();
sh.ScheduleStart = schedule.ScheduleStart;
sh.ScheduleEnd = schedule.ScheduleEnd;
foreach (var t in schedule.Timetables)
{
//sh.Timetables.Add(t); // doesn't work
sh.Timetables.Add(new Timetable { DayOfWeek = t.DayOfWeek, StartTime = t.StartTime, EndTime = t.EndTime }); // works
}
_entities.AddToSchedules(sh);
_entities.SaveChanges();
est-il un peu logica l raison pour laquelle sh.Timetables.Add (t) ne fonctionne pas puisque c'est une collection de Timetable?
/M
schedule.Timetables est un Entitycollection et je ne peux pas sembler ajouter plus de 1 si je mets à des .Timetables.Add. "impossible de convertir" System.Data.Objects.DataClasses.EntityCollection "en" BookingSystem.Data.Models.Timetable "" –
Add() prend un objet de base, pas une collection. Parcourez la collection source avec foreach et ajoutez() chaque objet à la collection de destination. –