2011-09-21 7 views
1

어떻게 Linq에서 동적 열을 사용할 수 있습니까?어떻게 Linq에서 동적 열을 사용할 수 있습니까?

예 :

var tmp = (from i in ESE.viw_kisiler 
         where (i.i_want_to_use_dynamic_column_in_here.Contains(kelime)) 
         select i); 

별례;

var a = (ComboBoxItems)ComboBox1.SelectedItem; 
    var ColumnName = a.Value; 

     var tmp = (from i in ESE.viw_kisiler 
           where (i.ColumnName.Contains(kelime)) 
           select i); 

감사합니다. 동적 LINQ 라이브러리의

+0

수 없습니다. Linq는 그것을 지원하지 않습니다. – Lazarus

+0

동적 열의 의미를 정확히 설명 할 수 있습니까? –

+0

당신은 할 수 있습니다. 그러나 꽤 많은 일이 필요합니다. –

답변

1

모든 답장과 의견을 보내 주셔서 감사합니다.

다른 방법을 사용합니다.

var SQL1 = (from i in ESE.viw_kisiler 
          select i); 

       DataTable DT = LINQToDataTable(SQL1); 

       var SQL2 = (from t in DT.AsEnumerable() 
         where t.Field<string>(ColumnName).Contains(Word) 
         select t); 

우선 Linq를 DataTable 쿼리로 변환 한 다음이 코드를 시도합니다. 지금 작동 중입니다!

+0

Contains 메서드에 대한 "대/소문자 구분 안 함"이 있습니다. StringComparison 및 확장 메서드를 통해 문제를 해결합니다. 'public static bool 포함 (이 문자열 소스, 문자열 toCheck, StringComparison comp) { return source.IndexOf (toCheck, comp)> = 0; }' '어디 t.Field (의 ColumnName) .Contains (워드, StringComparison.InvariantCultureIgnoreCase)' –

+0

http://stackoverflow.com/questions/444798/case-insensitive-containsstring/4217362#4217362 –

+0

HTTP ://blogs.msdn.com/b/jmanning/archive/2008/02/25/string-contains-really-should-have-an-overload-with-stringcomparison-specified.aspx –

1

만들기 사용 : Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library) 또는 predicate builder

enter image description here

당신도 확인할 수 있습니다 블로그에 Dynamic query with Linq 기사.

+0

나는 당신의 글을 읽었습니다. 당신이 내 모범을 보길 바랍니다. 나는 사용하고 싶다. 포함한다 고마워. –

+0

@ user956872 - 나는 동적 linq 라이브러리가 쉽게 당신의 필요를 만족시킨다라고 생각한다. –

+0

나는 많은 예제를 보았다. 그러나 여전히 방법은 매우 다릅니다. 면제를 위해; _ESE.viw_kisiler.Where (a => a.ad.Contains (kelime)) _ 하지만 여전히 동적 열 이름을 사용할 수 없습니다. 탁신. –

관련 문제