2017-04-13 62 views
-5

如何将此工作查询转换为GROUP BY?假设我想要o.Name在LINQ中帮助分组

List<MultipleTableQueryResultVM> VMList = new 
    List<MultipleTableQueryResultVM>(); 
var query_1 = (from t in db.Transactions 
       join c in db.Customers on t.CustomerID equals c.CustomerID 
       join o in db.Orders on c.CustomerID equals o.CustomerID 
       where t.CommerceTransID != null && o.Name == "VIP Tickets" 
        select new { Name = c.firstName, TransID = t.CommerceTransID, 
        Tipo = o.Type, Nombre = o.Name }); 

foreach (var item in query_1) 
{ 
    MultipleTableQueryResultVM objcvm = new MultipleTableQueryResultVM(); 
    objcvm.firstName = item.Name; 
    objcvm.CommerceTransID = item.TransID; 
    objcvm.Type = item.Tipo; 
    objcvm.Name = item.Nombre; 
    VMList.Add(objcvm); 
} 
+2

然后什么....你不能只是分组的东西,然后不做任何事情与已经定义的数据被选择返回。 – Igor

回答

0

测试这个。

foreach (var item in query_1.GroupBy(x=> x.Name).Select(x=> x.First())) 
{ 
    MultipleTableQueryResultVM objcvm = new MultipleTableQueryResultVM(); 
    objcvm.firstName = item.Name; 
    objcvm.CommerceTransID = item.TransID; 
    objcvm.Type = item.Tipo; 
    objcvm.Name = item.Nombre; 
    VMList.Add(objcvm); 
} 
+0

这个工程。谢谢! – ceci