Подтвердить что ты не робот

Возврат кортежа из EF select

Как я могу получить кортежи при выборе с помощью EF4?

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

или

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

Entity framework говорит, что can not использовать пустой конструктор для первого случая и не распознавать метод Tuple.Create для второго.

4b9b3361

Ответ 1

Как насчет переключения на LINQ-to-Objects для проекции:

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);

Ответ 2

Try

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

Это приведет к анонимному типу, который очень близок к кортежу http://msdn.microsoft.com/en-us/library/bb738512.aspx