2014-09-26 3 views
0

SQL을 linq로 변환하는 데 도움을주십시오. 필자는 linq을 처음 사용하며이 작업을 시도했지만 성공하지 못했습니다. 이것이 가능하거나 아닌지 알려주시겠습니까?요소별로 여러 그룹에 가입하고 추가 열을 선택하십시오.

SELECT max(Products.ProductID) as ProductID, Products.SKU, Products.Name, Products.RRP, Products.Price, 
        max(Products.FrontTall) as FrontTall, 
        ProductsCategory.SortOrder, 
        Products.ColorValue, 
        max(Products.ColorImg) as ColorImg, 
        Products.IsPrimary, 
        Products.Visible 
        FROM Products INNER JOIN ProductsCategory ON Products.ProductID = ProductsCategory.ProductID 
        WHERE (ProductsCategory.CategoryID = 5) AND (Products.Visible = 1) AND (Products.Inactive = 0) AND (Products.Deleted = 0 or Products.Deleted is null) 
        GROUP BY SKU, Products.Name, RRP, Price, ColorValue, ProductsCategory.SortOrder, IsPrimary, Visible 

이 내가 미리

감사에 의해 그룹에 포함하지 않고 제품 ID, FrontTall 및 ColorImg 필드 값을 얻을 필요가

var products = (from p in db.Products 
          join cp in db.ProductsCategories on p.ProductID equals cp.ProductID 
          where cp.CategoryID == catId && p.Visible == true && p.Inactive == false && (p.Deleted == null || p.Deleted == false) 
          group p by new { 
           p.SKU, 
           p.Name, 
           p.RRP, 
           p.Price, 
           p.ColorValue,    
           p.IsPrimary, 
           p.Visible, 
           cp.SortOrder 
          } into grouped 
          select new { 
           ProductID, 
           FrontTall, 
           ColorImg, 
           SKU = grouped.Key.SKU, 
           Name = grouped.Key.Name,        
           RRP = grouped.Key.RRP, 
           Price = grouped.Key.Price, 
           ColorValue = grouped.Key.ColorValue,        
           IsPrimary = grouped.Key.IsPrimary, 
           Visible = grouped.Key.Visible, 
           SortOrder = grouped.Key.SortOrder 
          }) 
         .OrderBy(x => x.SortOrder); 

을 시도하고있는 무슨이다. 키시

답변

0
select new {ProductID = grouped.Max(x => x.ProductID)} 
관련 문제