2017-12-31 96 views
-1

여기의 아이디어는 모든 레서피의 모든 재료를 합친 것입니다. 내 검색어입니다SQL에 대한 linq의 SQL 쿼리 (문제 별 그룹)

SELECT IngredientName,sum(Amount) as Amount,Unit 
FROM RecipeIngredients Join Ingredients ON RecipeIngredients.IngredientID = Ingredients.IngredientsID 
GROUP BY IngredientID,IngredientName,Unit 
ORDER BY IngredientName 

훌륭한 작품입니다. 문제 없음. 나는 linq SQL 구문으로 혼란스러워지고있다. 이것은 내가 지금까지 가지고있는 것입니다.

using (lDataContext db = new lDataContext()) 
     { 
      return (from ri in db.RecipeIngredients join i in db.Ingredients on ri.IngredientID equals i.IngredientsID 

        group new {ri,i} by new {i.IngredientsID,i.IngredientName,ri.Unit } 
        into table 
        select new { 
         Name = table.IngredientName 
         Unit = table.Unit 
         Amount = table.Sum(i.amount) } 
        ).ToList(); 
     } 

내 구문으로 도움을받을 수 있습니까?

+3

예제로 그룹을 찾고 설명서를 읽으셨습니까? 이게 쉬운 일인 것 같아요.이 물건을 보면서 더 많은 것을 배울 수 있습니다. –

+0

설명서는 어디에 있습니까? –

+1

예를 들어 검색 기능이 있으며 Google에 설명서가 있습니다. –

답변

0

,

  1. 별도의 변수
  2. LINQ 절 순서대로 각 절을 번역으로 부속 선택을 번역, LINQ에 SQL을 변환하는

    , 당신이 엔티티에 LINQ를 사용하지만, 단지 LINQ SQL에되지 않습니다 가정 모나드 연산자 (DISTINCT, TOP 등)를 전체 LINQ 쿼리에 적용되는 함수로 남겨 둡니다.

  3. 표 별칭을 범위 변수로 사용하십시오. 익명 형식 필드 이름으로 열 별칭을 사용하십시오.
  4. 여러 열에 익명 형식 (new {}) 사용
  5. 왼쪽 결합은 결합 변수를 사용하고 join 변수에서 다른 변수를 수행 한 다음 .DefaultIfEmpty()를 사용하여 시뮬레이션합니다.
  6. COALESCE를 조건부 연산자 및 Null 테스트로 바꾸십시오.
  7. SELECT *는 선택 범위 변수 또는 모든 범위 변수가 포함 된 익명 개체 인 조인으로 대체되어야합니다.
  8. SELECT flds는 select new {...}로 대체해야 원하는 모든 필드 또는 표현식으로 익명 객체를 만들 수 있습니다.