2012-01-10 34 views

回答

0

您可以通過最靈活的方式來拆分您的層/關注點,即爲每種類型編寫一個轉換器。這通常被稱爲將實體數據類型(EDO)轉換爲數據傳輸類型(DTO),反之亦然。這裏有一個潛在的例子:

public ObservableCollection<DTO.Schedule> GetSchedules(DateTime day) 
    { 
     using (var ctx = new MyContext()) 
     { 
      var endOfDay = day.Date.Add(new TimeSpan(23, 59, 59)); 
      var found = from schedule in ctx.Schedules 
       where (schedule.Date >= day.Date) && (schedule.Date <= endOfDay) 
       select schedule; 

      return new ObservableCollection<DTO.Schedule>(found.Select(GetSchedule)); 
     } 
    } 

    private static DTO.Schedule GetSchedule(EDO.Schedule schedule) 
    { 
     return schedule == null 
      ? null 
      : new DTO.Schedule 
      { 
       Id = schedule.ScheduleID, 
       Name = schedule.Name, 
       Description = schedule.Description, 
       Status = schedule.Status, 
       Date = schedule.Date, 
      }; 
    } 
相關問題