Модель EntityData для ObservableCollection - PullRequest
0 голосов
/ 11 января 2012

В моем приложении я обращаюсь к своим данным, используя Entity FrameWork. Это приложение WPF MVVM. Я хочу, чтобы мои данные сущности были изменены на ObservableCollection. Есть ли способ сделать это? Помоги мне. Заранее спасибо.

1 Ответ

0 голосов
/ 11 января 2012

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