내가 follofing 코드가 SQL합니다. DataModel은 엔티티 테이블입니다. s의 모든 요소 (속성) 목록을 가져 오려고합니다. 그러나 그것은 간단하지 않습니다. 나는 2 속성을 전혀 얻는다. 1은 DataContext의 이름이고 다른 하나는 Bool (readOnly)입니다. 그러나 DataModels 클래스는 훨씬 더 넓습니다. 들어오는 매개 변수가 강하게 입력되지 않더라도 ITable을 통해 올바르게 반복하는 방법은 무엇입니까?루프
루프
답변
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));
}
}
Ok .. 및 DTMConsole.DataModels 엔터티 속성을 참조하는 방법. 하드 코딩하지 않아도됩니다. –
Tablename (엔티티 이름)을 전달하기 만하면 엔티티의 모든 값을 읽어야합니다. 나는 테이블을 검색하기 위해 GetTable을 사용하고 있지만 런타임에 클래스 이름을 모르는 상태에서 curTable을 통해 클래스 이름을로드하고 결과가 단순히 일부 속성 및 메서드가있는 객체라고 가정합니다. 원하는 목표는 –
입니다. datacontext의 GetTable 메서드는 이미 필요한 DataModels 엔터티의 인스턴스를 만들고 데이터로 채 웁니다. –
내가 추가하고 싶습니다. s 변수를 통해 반복 시도했지만 Sqlexception을 제공합니다. 공급자 : SQL 네트워크 인터페이스, 오류 : 26 –