2012-01-10 4 views
0

私のアプリケーションでは、Entity FrameWorkを使用してデータにアクセスしています。そのWPF MVVMアプリケーションです。エンティティデータをObservableCollectionに変更したい。これを行う方法はありますか?私を助けてください。前もって感謝します。ObservableCollectionへのEntityDataモデル

答えて

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, 
      }; 
    } 
関連する問題