从EF select返回元组

时间:2010-01-22 16:24:39

标签: c# .net entity-framework linq-to-entities

如何使用EF4在Select中检索元组?

        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 个答案:

答案 0 :(得分:20)

如何切换到投影的LINQ到对象:

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 :(得分:0)

尝试

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

这将返回一个非常接近元组的匿名类型 http://msdn.microsoft.com/en-us/library/bb738512.aspx