Ich bin verwirrt, wie ich zu verwandten Entitäten mit DDD aktualisiert werde. Sagen wir, ich habe eine Mitarbeiterklasse und eine Arbeitsschaltklasse. Wie sollte ich einen bestimmten Arbeitsablauf eines bestimmten Mitarbeiters aktualisieren? Die Beziehung zwischen Employee und Workt Schedule ist One-to-Many. Unten ist der Code, den ich benutze, um einen bestimmten Arbeitsplan hinzuzufügen/zu aktualisieren.Aktualisieren von verwandten Entitäten DDD
public class Employee
{
public int EmployeeId { get; set; }
public virtual ICollection<WorkSchedule> WorkSchedules { get; set; }
public WorkSchedule AddWorkSchedule(WorkSchedule workSchedule)
{
this.WorkSchedules.Add(workSchedule);
return workSchedule;
}
public WorkSchedule EditWorkSchedule(WorkSchedule workSchedule)
{
var originalWorkSchedule = this.WorkSchedules.FirstOrDefault(w => w.WorkscheduleId == workSchedule.WorkscheduleId);
originalWorkSchedule.ClockIn = workSchedule.ClockIn;
originalWorkSchedule.ClockOut = workSchedule.ClockOut;
return originalWorkSchedule;
}
}
public class WorkSchedule
{
public int WorkScheduleId { get; set; }
public DateTime ClockIn { get; set; }
public DateTime ClockOut { get; set; }
public int EmployeeId { get; set; }
}
Ist das korrekt? Habe ich DDD richtig verstanden? Auch mein Denken ist gerade jetzt Workschedule ein Wertobjekt, aber ich stelle und ID für die Normierung
Ich dachte diese Methode auch, aber ich bin verwirrt, da workschedule kann nicht ohne Mitarbeiter existieren, deshalb habe ich eine Add-Methode für die Employee-Klasse erstellt. Die Add-Methode fügt nur den Arbeitsschedule in der Liste nicht auf dem DB hinzu – gnaungayan
Es ist Model Validation (WorkSchedule.EmployeeId kann nicht NULL sein). Sie können 'System.ComponentModel.DataAnnotations' verwenden oder' IValidatableObject' in Ihrem Modell implementieren. damit die 'Save()' Methode das Modell vor dem Speichern validieren kann. siehe [Entity Framework 4.1 Validierung] (http://msdn.microsoft.com/en-us/data/gg193959) – aifarfa
Sie sagen also, es ist der gleiche Fall mit Orders und OrderLines – gnaungayan