루프

2011-12-12 6 views
1

내가 follofing 코드가 SQL합니다. DataModel은 엔티티 테이블입니다. s의 모든 요소 (속성) 목록을 가져 오려고합니다. 그러나 그것은 간단하지 않습니다. 나는 2 속성을 전혀 얻는다. 1은 DataContext의 이름이고 다른 하나는 Bool (readOnly)입니다. 그러나 DataModels 클래스는 훨씬 더 넓습니다. 들어오는 매개 변수가 강하게 입력되지 않더라도 ITable을 통해 올바르게 반복하는 방법은 무엇입니까?루프

+0

내가 추가하고 싶습니다. s 변수를 통해 반복 시도했지만 Sqlexception을 제공합니다. 공급자 : SQL 네트워크 인터페이스, 오류 : 26 –

답변

1

ITable의 속성을 참조하고 있습니다.

var s = wtcDb.GetTable(Type.GetType(curTable)); 
    PropertyInfo[] pList = s.ElementType.GetProperties(BindingFlags.Instance | BindingFlags.Public); 

    foreach (var obj in s) 
    { 
     foreach (var p in pList) 
     { 
      Console.WriteLine(p.GetValue(obj, null)); 
     } 
    } 
+0

Ok .. 및 DTMConsole.DataModels 엔터티 속성을 참조하는 방법. 하드 코딩하지 않아도됩니다. –

+0

Tablename (엔티티 이름)을 전달하기 만하면 엔티티의 모든 값을 읽어야합니다. 나는 테이블을 검색하기 위해 GetTable을 사용하고 있지만 런타임에 클래스 이름을 모르는 상태에서 curTable을 통해 클래스 이름을로드하고 결과가 단순히 일부 속성 및 메서드가있는 객체라고 가정합니다. 원하는 목표는 –

+0

입니다. datacontext의 GetTable 메서드는 이미 필요한 DataModels 엔터티의 인스턴스를 만들고 데이터로 채 웁니다. –