Вернуть Tuple из EF select - PullRequest
17 голосов
/ 22 января 2010

Как я могу получить кортежи в 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));

Платформа сущностей говорит, что не может использовать не пустой конструктор для первого случая и не распознает метод Tuple.Create для второго.

Ответы [ 2 ]

20 голосов
/ 22 января 2010

Как насчет перехода на 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);
0 голосов
/ 27 августа 2011

Попробуйте

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...