2010-05-26 13 views
15

Tengo una entidad de producto, que tiene 0 o 1 entidades "BestSeller". Por alguna razón, cuando digo:¿Demasiadas combinaciones externas a la izquierda en Entity Framework 4?

db.Products.OrderBy(p => p.BestSeller.rating).ToList(); 

SQL consigo tiene un exterior "extra" join (abajo). Y si agrego una segunda relación 0 o 1, y el orden por ambos, entonces obtengo uniones externas. Parece que cada una de esas entidades está produciendo 2 uniones externas en lugar de una. LINQ to SQL se comporta exactamente como cabría esperar, sin unión adicional.

¿Alguien más ha experimentado esto o sabe cómo solucionarlo?

SELECT 
[Extent1].[id] AS [id], 
[Extent1].[ProductName] AS [ProductName] 
FROM [dbo].[Products] AS [Extent1] 
LEFT OUTER JOIN [dbo].[BestSeller] AS [Extent2] ON [Extent1].[id] = [Extent2].[id] 
LEFT OUTER JOIN [dbo].[BestSeller] AS [Extent3] ON [Extent2].[id] = [Extent3].[id] 
ORDER BY [Extent3].[rating] ASC 
+0

Parece como si sólo lo hace por una entidad 0..1. Si hay una colección de entidades, la carga ansiosa de la colección da como resultado la combinación externa única correcta. –

Respuesta

2

Esa unión externa extra parece bastante superflua. Creo que es mejor contactar al equipo de diseño de la estructura de la entidad. Pueden saber si se trata de un error y ver si es algo que debe resolverse en una próxima versión. Puede contactarlos al http://blogs.msdn.com/b/efdesign/contact.aspx

+2

Buena llamada, acabo de hacer eso. –

+1

+1 por tomarse el tiempo para ayudar a mejorar el software! – JohnB

+0

¿No te parece curioso si recibiste noticias del equipo de EF? Estoy viendo lo mismo y siento curiosidad por saber si llaman a esto un error o una "característica". Pensé en preguntar aquí antes de contactar al equipo. –

1

Puede ser un error, pero parece un ejemplo tan simple que es extraño que el error no haya sido capturado y reparado.

Podría verificar su modelo EF.

Se ha agregado la tabla BestSeller dos veces o hay una duplicación en la relación entre las tablas.

+0

También verifique el SSDL y asegúrese de que la tabla esté correlacionada correctamente. –

+0

Revisé el XML del modelo de entidad, y no vi nada saltándome. Es de esperar que la gente en el blog de EF pueda brindar alguna información. –

+0

Maldicen el Incluir ... ¡El equipo EF necesita optimizar esto a lo grande! –

Cuestiones relacionadas