2013-03-07 158 views
2

当执行使用LINQ到实体的“键/值表”下面的查询,我得到一个[System.NotSupportedException] "Specified method not supported"错误的LINQ查询透视

有人可以给我一个提示我做错了吗?

var Pivot = context.goe_postmeta.GroupBy(pm => pm.post_id).Select(
       g => new PivotTemp 
        { 
         ID = g.Key, 
         FirstName = g.FirstOrDefault(p => p.meta_key == "_billing_first_name").meta_value, 
         LastName = g.FirstOrDefault(p => p.meta_key == "_billing_last_name").meta_value, 
         Address = g.FirstOrDefault(p => p.meta_key == "_billing_address_1").meta_value, 
         PostCode = g.FirstOrDefault(p => p.meta_key == "_billing_postcode").meta_value, 
         Phone = g.FirstOrDefault(p => p.meta_key == "_billing_phone").meta_value, 
         OrderTotal = g.FirstOrDefault(p => p.meta_key == "_order_total").meta_value, 
         PickupLocation = g.FirstOrDefault(p => p.meta_key == "_pickup_location").meta_value, 
         PickupTime = g.FirstOrDefault(p => p.meta_key == "_pickup_time").meta_value, 
         OrderItems = g.FirstOrDefault(p => p.meta_key == "_order_items").meta_value 
        }).ToList(); 

回答

0
var Pivot = context.goe_postmeta.GroupBy(pm => pm.post_id).Select(
       g => new PivotTemp 
        { 
         ID = g.Key, 
         FirstName = g.FirstOrDefault(p => p.meta_key == "_billing_first_name").meta_value, 
         LastName = g.FirstOrDefault(p => p.meta_key == "_billing_last_name").meta_value, 
         Address = g.FirstOrDefault(p => p.meta_key == "_billing_address_1").meta_value, 
         PostCode = g.FirstOrDefault(p => p.meta_key == "_billing_postcode").meta_value, 
         Phone = g.FirstOrDefault(p => p.meta_key == "_billing_phone").meta_value, 
         OrderTotal = g.FirstOrDefault(p => p.meta_key == "_order_total").meta_value, 
         PickupLocation = g.FirstOrDefault(p => p.meta_key == "_pickup_location").meta_value, 
         PickupTime = g.FirstOrDefault(p => p.meta_key == "_pickup_time").meta_value, 
         OrderItems = g.FirstOrDefault(p => p.meta_key == "_order_items").meta_value 
        }).ToList(); 

也许是因为你缺少的 “” ToList()之前?只是一个猜测

+0

对不起,这是一个错字...'。'到位了! – 2013-03-07 18:14:06