2011-05-07 4 views
2

동적 쿼리를 작성 중입니다. 기본적으로 함수는 매개 변수 인 속성을 가진 MyParams 객체를받습니다. MyParams 객체를 기반으로 Where 절을 만들고 익명 형식의 목록을 반환합니다.linq-to-sql이 동적 쿼리를 처리합니까?

그렇다면 L2SQL은 동적 쿼리 생성을 지원합니까? 다른 쿼리에 대해 이미 작동하는 데이터 컨텍스트가 있습니다. 매개 변수에 따라 때때로 일부 테이블에 액세스해야하므로 동적으로 From 절을 작성해야합니까, 아니면 모든 테이블을 포함하고 where 절에만 초점을 맞추어야합니까?

감사합니다.

답변

3

은 당신이 뭔가를 할 수 있습니다으로 :

 var baseQuery = dataAccess.Table1.Where(arg => arg.Field1 = 1); 

     if (parameter[1] = true) 
     { 
      baseQuery = baseQuery.Where(arg => arg.Field2 = 'Test'); 
     } 

     if (parameter[2] = true) 
     { 
      baseQuery = 
       from x in baseQuery 
       join y in dataAccess.Table2 on 
        x.Id equals y.Id 
       where y.Field3 = 'Something' 
       select x; 
     } 

     return baseQuery.ToList(); 
+0

내가 사용하는 경우 (MyDC TheDC를 = 새로운 MyDC()), 어떻게 작동합니까? 여러 개의 from 절로 무엇을 할 수 있습니까? – frenchie

+0

@frenchie는 쿼리를 구체화 할 때까지'MyDC'를 삭제하지 않습니다. 즉'return baseQuery.ToList()'는'using' 문 안에 있어야합니다. –

+0

제안 해 주셔서 감사합니다. – frenchie

1

answer을 다른 질문에 사용할 수 있어야합니다. 귀하의 질문은 귀하의 것이 더 일반적이지만 문제를 해결하는 이유는 정확히 동일합니다. 이 당신이 원하는 경우

관련 문제