3

Здравствуйте!
Начал изучать Entity Framework и почти сразу столкнулся с проблемами.
Жаль, что все туториалы в Интернете рассматривают лишь самые простейшие примеры.
Мне нужно реализовать своего рода магазин на WPF и EF. Есть таблица Клиентов(сущности Customers) и их Заказов(сущности Orders). Пытаюсь отобразить обе эти таблицы на два разных DataGrid. С Customers проблем нет: делаю привязку к свойству ObservableCollection Customers, которое объявлено в моей ViewModel.
Каждый Customer имеет навигационное свойство ObservableCollection Orders. Загружаю с помощью явной загрузки (explicit loading) коллекцию Заказов в ObservableCollection, объявленную во ViewModel, но вторая таблица с заказами ничего не отображает. INPC использую. RelayCommand тоже.
Нужно, чтобы можно было отображать Заказы для выбранного Клиента.
Подскажите, пожалуйста, как это все правильно реализовать.

badc0de32
  • 274
  • Покажите ваш код, минимальный пример. И непонятно, воспроизводится ли ваша проблема без базы данных — попробуйте! – VladD Jul 03 '16 at 21:24
  • @VladD: все получилось, вроде бы. Вот только не знаю, правильно ли это или нет, но я загружаю из моей Model (которая работает с DbContext) список заказов Orders для текущего клиента (привязка к SelectedItem таблицы клиентов DataGridCustomers). Этот список заказов загружаю в ObservableCollection Orders, объявленный в моей ViewModel, и привязываю эту коллекцию к таблице DataGridOrders. Затем назначаю обработчик для события CollectionChanged, в нем для каждого нового (e.NewItem) заказа задаю внешний ключ CurrentCustomer.CustomerId. Теперь заказ связан с клиентом и можно все сохранять в БД. – badc0de32 Jul 05 '16 at 07:49
  • Ну, я бы не выставлял модельный объект Order во View, т. к. он не реализует INPC (и по другим причинам). Но если работает, то хорошо. – VladD Jul 05 '16 at 09:23
  • @VladD: а как тогда поступать в таком случае? Как не выставлять Order во View? – badc0de32 Jul 05 '16 at 09:46
  • Вот когда-то был вопрос с обсуждением по этому поводу: http://ru.stackoverflow.com/q/379255/10105 – VladD Jul 05 '16 at 10:25

0 Answers0