Возврат кортежа из 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 для второго.
Ответы
Ответ 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