从EF select返回元组

Fel*_*oto 17 .net c# linq-to-entities entity-framework

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

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

要么

        var productCount = (from product in context.products
                    select Tuple.Create(product, products.Orders.Count));
Run Code Online (Sandbox Code Playgroud)

实体框架说第一种情况不能使用空构造函数,而第二种情况则不能识别Tuple.Create方法.

Mar*_*ell 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);
Run Code Online (Sandbox Code Playgroud)

  • 实际上,其缺点是EF仍在查询所有数据,而不仅仅是您正在使用的列. (6认同)