2010-01-22 8 views
17

¿Cómo puedo recuperar Tuples en Select usando EF4?Return Tuple from EF select

 var productCount = (from product in context.products 
        select new Tuple<Product, int>(product, products.Orders.Count)); 

O

 var productCount = (from product in context.products 
        select Tuple.Create(product, products.Orders.Count)); 

marco de la entidad dice que no puede usar el constructor no está vacío para el primer caso, y no reconocen método Tuple.Create por segundo.

Respuesta

19

¿Qué hay de cambiar a LINQ a objetos para la proyección:

var productCount = from product in context.products 
       select new {Product = product, Count = products.Orders.Count }; 
var final = from item in productCount.AsEnumerable() 
      select Tuple.Create(item.Product, item.Count); 
+1

Esa será la única opción: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=520269 –

+0

No es una bolsa adivinar, entonces, considerando ;-p He subido la apuesta al elemento "conectar". –

+0

Estoy haciendo esto. Pero no existe una mejor opción? –

2

Trate

var productCount = from product in context.products 
        select new { product, Count = products.Orders.Count }; 

Esto devolverá un tipo anónimo que está muy cerca de una tupla http://msdn.microsoft.com/en-us/library/bb738512.aspx

+4

Lo sé. Pero los tipos anónimos no son públicos –

Cuestiones relacionadas