Существует набор типов устройств, некоторые из которых поддерживают параметры конфигурации. Я пытаюсь получить список всех типов устройств и любых применимых настроек.
Этот запрос не выбирает устройства, у которых нет DeviceParameters. Если я добавлю .DefaultIfEmpty (), как показано ниже, я получу следующую ошибку:
«Приведение к типу значения 'Int64' не удалось, потому что материализованное значение равно null. Либо общий параметр типа результата, либо запрос должен использовать допускающий значение NULL type. "
Каков правильный synatx для DefaultIfEmpty?
var Devices = from d in dc.DeviceTypes
join p in dc.DeviceParameters on d.TypeID equals p.TypeID into tmpTable
from items in tmpTable.DefaultIfEmpty()
group items by d.DeviceName into g
select new
{
DeviceName = g.Key,
settings = from s in g
select new
{
ParamName = s.ParamName,
Param1 = s.Param1,
Param2 = s.Param2,
Param3 = s.Param3
}
};