我很困惑我將如何使用DDD更新相關實體。假設我有一個Employee Class和Workschedule Class。我應該如何更新某個員工的特定工作計劃? Employee和Workschedule之間的關係是一對多關係。以下是我正在使用的代碼如何添加/更新某個作品計劃。更新相關實體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; }
}
這是正確的嗎?我是否正確遵循DDD?另外,我的思想現在Workschedule是一個值對象,但我把與ID爲正常化的目的
我也在想這種方法,但我很困惑,因爲workschedule不能存在沒有任何員工多數民衆贊成爲什麼我在Employee類上創建一個添加方法。 Add方法只在列表上添加工作日程表,不在DB – gnaungayan 2012-04-07 07:16:43
它的模型驗證(WorkSchedule.EmployeeId不能爲NULL)。你可以在模型上使用'System.ComponentModel.DataAnnotations'或實現'IValidatableObject'。這樣'Save()'方法可以在保存之前驗證模型。請參閱[實體框架4.1驗證](http://msdn.microsoft.com/en-us/data/gg193959) – aifarfa 2012-04-07 07:29:02
所以你說的與Orders和OrderLines相同的情況 – gnaungayan 2012-04-07 10:22:06