Привязка данных нескольких таблиц бд к DataGrid wpf с использованием Entity Framework

39
19 февраля 2019, 18:40


Ситуация следующая: имеется 3 таблицы БД, данные которых, предварительно соединив их в запросе с помощью оператора join, должны выводиться в DataGrid. Получилось что-то вроде такого:

var actDeviceList = from d in Global.dB.Devices
                join s in Global.dB.DeviceStates on d.IdDeviceState equals s.Id
                join t in Global.dB.DeviceTypes on d.DeviceTypeName equals t.DeviceTypeName
                where d.IdAct == Global.currentAct.Id
                select new { t.DeviceTypeName, d.DeviceNumber, s.DeviceStateName, d.DeviceAddress, d.GVS };
dgDevicesInAct.ItemsSource = actDeviceList.ToList();


В xaml прописал каждому выводимому полю Binding Path. Всё хорошо. Всё выводит.
Теперь мне необходимо, при выборе строки в DataGrid, преобразовать её в класс сущности Device. Делаю это так:

var device = dgDevicesInAct.SelectedValue as Device;

По итогу, переменной device присваивается null...
В случае, когда идёт работа DataGrid c одной таблицей - данные нормально можно приводить к типу, с которого выводились эти данные.
Подскажите, каким образом можно привести выделенную строку в таблице к нужному классу, если таблица DataGrid состоит из 3х объединённых таблиц БД??

Я надеялся, что в момент приведения будут использованы свойства, которые относятся к этому классу, а остальные "обрежутся", но и появится всё-таки какой-то экземпляр объекта...

READ ALSO
Как узнать,что запущена именно UI?

Как узнать,что запущена именно UI?

Есть CL(command line) приложение, в качестве формы выводится форма для настроекТак вот, при попытке вызвать второй раз форму отображается сообщение...

20
Абстрактный generic класс, с переменным числом типов

Абстрактный generic класс, с переменным числом типов

Меня интересует может ли generic класс принимать несколько типов параметров, а точнее которое заранее неизвестно, как тот же кортеж?

30
Составной диапазон из разных ячеек EXCEL (C#)

Составной диапазон из разных ячеек EXCEL (C#)

Для ограничения доступа к ячейкам EXCEL через C# применяю метод WorksheetProtection

54