Hola, ¿puedo saber cómo hacer una condición selectiva de "caso" al usar linq? El código comentado es mi pregunta. ¿cómo pongo la condición allí? mi código:linq join with case condition
var r = from u in Users
join p in Payments on u.Id equals p.UserId
join soi in SaleOrderItems on p.ReferenceId equals soi.Id
//if soi.InventoryTypeId == 1
//then join i in Inventories on soi.InventoryOrCourseId equals i.Id
//elseif soi.InventorytypeId ==2
//then join c in Courses on soi.InventoryOrCourseId equals c.Id
where u.Id == 5
select new{ u, p, soi, either i or c};
@mmix hi recibí este error "El tipo de una de las expresiones en la cláusula join es incorrecta. Error en la inferencia de tipo en la llamada a 'GroupJoin'." en la línea join i en Inventarios en new {a ... – VeecoTech
¿Qué tipo es 'soi.InventoryTypeId'? Como imagino que 'type (soi.InventoryOrCourseId)' es igual a 'type (Inventory.Id)', entonces debe ser que 'soi.InventoryTypeId' no sea' int'. Si es así, decore las constantes 1 y 2 con un sufijo de tipo apropiado (U, L, etc.) – mmix
@mmix: sí, ambos son exactamente int – VeecoTech