2010-02-04 3 views
1

다음 코드는 기본 클래스에 있습니다.수많은 where 절이있는 아음속 동적 쿼리 작성

 MyApp.MyDB = new MyApp.MyDB(); 
     IRepository<T> repo = new SubSonicRepository<T>(db); 
     CurrentTable = repo.GetTable(); 



     var s = db.SelectColumns(columnList.ToArray()). 
       From(CurrentTable.Name). 
       OrderAsc(CurrentTable.Descriptor.Name); 

아이디어는 모든 클래스가이 메소드를 호출 할 수 있다는 것입니다.

저는 'where'문이 필요하고 테스트 할 수많은 열 이름과 값이 필요할 수도 있다는 것을 깨달았습니다.

이 용도로 가장 적합한 방법은 무엇입니까?

업데이트 : 아래에서 작동하지만 가장 좋은 방법입니까?

//WhereClause is a Dictionary<string, string> 
     int count = 0; 
     foreach (var whereitem in WhereClause) 
     { 
      if (count == 0) 
      { 
       s.Where(whereitem.Key).IsEqualTo(whereitem.Value); 
      } 

      else 
      { 
       s.And(whereitem.Key).IsEqualTo(whereitem.Value); 
      } 

      count++; 
     } 

답변

1

이 약간 논리를 단순화 : 다른 모든 whereitem의, 당신이 사용할 수있는 그리고의에 대한

s.Where(1).IsEqualTo(1); 

: where 절은이 같은 뭔가.