在我的应用程序中,我使用Entity FrameWork访问我的数据。它是一个WPF MVVM应用程序。我希望将我的实体数据更改为ObservableCollection。有没有办法做到这一点?帮帮我。提前谢谢。
答案 0 :(得分: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,
};
}