2017-04-13 59 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