public object Clone() { KundeItemViewModel tempObject = (KundeItemViewModel)this.MemberwiseClone(); tempObject._item = (Kunde)_item.Clone(); return(tempObject); }
/// <summary> /// Änderungen an einer Liste von Passagieren speichern /// Die neu hinzugefügten Passagiere muss die Routine wieder zurückgeben, da die IDs für die /// neuen Passagiere erst beim Speichern von der Datenbank vergeben werden /// </summary> public List <Kunde> SaveKundenSet(List <Kunde> KundenSet, out string Statistik) { //https://blogs.msdn.microsoft.com/diego/2010/10/05/self-tracking-entities-applychanges-and-duplicate-entities/ // Änderungen für jeden einzelnen Passagier übernehmen try { foreach (Kunde p in KundenSet) { if (p.ChangeTracker.State == ObjectState.Modified) { var abfrage = from Kundendaten in modell.KundenlisteSatz select Kundendaten; Kunde current = abfrage.Where(o => o.Kunden_ID == p.Kunden_ID).First(); Kunde.Clone(p, current); modell.KundenlisteSatz.ApplyChanges(current); current.ChangeTracker.State = ObjectState.Unchanged; } else if (p.ChangeTracker.State == ObjectState.Deleted) { var abfrage = from Kundendaten in modell.KundenlisteSatz select Kundendaten; Kunde current = abfrage.Where(o => o.Kunden_ID == p.Kunden_ID).First(); current.MarkAsDeleted(); modell.KundenlisteSatz.DeleteObject(current); } else if (p.ChangeTracker.State == ObjectState.Added) { modell.KundenlisteSatz.ApplyChanges(p); } } } catch { Console.Write("Context is up to date"); } // Statistik der Änderungen zusammenstellen Statistik = ""; Statistik += "Geändert: " + modell.ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Modified).Count(); Statistik += " Neu: " + modell.ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Added).Count(); Statistik += " Gelöscht: " + modell.ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Deleted).Count(); // Neue Datensätze merken, da diese nach Speichern zurückgegeben werden müssen (haben dann erst ihre IDs!) List <Kunde> NeueKunden = KundenSet.Where(f => f.ChangeTracker.State == ObjectState.Added).ToList(); // Änderungen speichern modell.SaveChanges(); modell.Refresh(System.Data.Objects.RefreshMode.StoreWins, modell.KundenlisteSatz); // Statistik der Änderungen zurückgeben return(NeueKunden); }
public override ReservationDto Clone() { return(new ReservationDto { ReservationNr = ReservationNr, Von = Von, Bis = Bis, Auto = Auto.Clone(), Kunde = Kunde.Clone() }); }
public override object Clone() { return(new ReservationDto { ReservationNr = ReservationNr, Von = Von, Bis = Bis, Auto = (AutoDto)Auto.Clone(), Kunde = (KundeDto)Kunde.Clone() }); }