Tengo una combinación externa izquierda (a continuación) que devuelve los resultados como se esperaba. Necesito limitar los resultados de la tabla "derecha" al "primer" golpe. ¿Puedo hacer eso de alguna manera? Actualmente, obtengo un resultado para cada registro en ambas tablas, solo quiero ver un resultado de la tabla de la izquierda (ítems) sin importar cuántos resultados tenga en la tabla correcta (fotos).Cómo limitar una combinación externa izquierda LINQ a una fila
var query = from i in db.items
join p in db.photos
on i.id equals p.item_id into tempPhoto
from tp in tempPhoto.DefaultIfEmpty()
orderby i.date descending
select new
{
itemName = i.name,
itemID = i.id,
id = i.id,
photoID = tp.PhotoID.ToString()
};
GridView1.DataSource = query;
GridView1.DataBind();
Me gusta la elegancia de esta solución, sin embargo, creo que esto puede crear una consulta que es más difícil de optimizar para SQL debido a la sub selección –
I comprobado y contento tanto con el SQL generado como con el plan de ejecución estimado. La subselección se planificó como una combinación externa izquierda. –
refresque cualquier posibilidad de que pueda publicar el SQL, tengo curiosidad por verlo. –