Hay una colección de tipos de dispositivos, algunos de los cuales admiten configuración (es) de configuración. Estoy tratando de obtener una lista de todos los tipos de dispositivos y cualquier configuración aplicable.Linq Unión exterior izquierda - DefaultIfEmpty Error
Esta consulta no está recogiendo dispositivos que no tienen DeviceParameters. Si añado el .DefaultIfEmpty() como se muestra a continuación, me sale este error:
"El reparto de tipo de valor 'Int64' fracasaron porque el valor materializado es nulo cualquier parámetro genérico del tipo de resultado o la consulta deben utilizar. un tipo de nullable ".
¿Cuál es el synatx correcto para 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
}
};
¿Ha intentado convertir ambos TypeIDs a nullable int? "on (int?) d.TypeID es igual a (int?) p.TypeID en" ... –
Jacob: Gracias por la sugerencia, pero el mismo error ocurre incluso con el elenco. –
:). Vale la pena intentarlo y gracias por la actualización. Me alegro de que hayas recibido una respuesta calificada. –