Самый гибкий способ для вас разделить свои уровни / проблемы - это написать конвертер для каждого типа.Это обычно называется преобразованием типа данных объекта (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,
};
}