2017-04-27 12 views
0

WebMatrix.Data.DynamicRecord를 개체로 변환 할 수있는 방법이 있습니까? 난을 MyObject에 WebMatrix.Data.DynamicRecord은 (records.ElementAt (I)) 예외를주고 캐스팅WebMatrix.Data.DynamicRecord를 개체에 캐스팅

다음
string selectQuery = " SELECT * FROM " + TABLENAME + " WHERE condition = @0 "; 
IEnumerable<dynamic> records= (IEnumerable<dynamic>)dbInstance.ExecuteSelectQuery(selectQuery, cond); 

for (int i = 0; i < records.Count(); ++i){ 
     MyObject obj = (MyOject)records.ElementAt(i); 
    //do somethinng 
    } 

로이 함수를 호출하는 경우 지금

public IEnumerable<dynamic> ExecuteSelectQuery(string query, params object[] args) 
     { 
      IEnumerable<dynamic> resultSets = null; 
      OpenStore(); 
      try 
      { 
       resultSets = db.Query(query, args); 
      } 
      catch (Exception ex) 
      { 
       Trace.TraceError("Unable to execute statement: " + query + ", Failed with error:" + ex); 
      } 
      finally 
      { 
       CloseStore(); 
      } 
      return resultSets; 
     } 

같은 SQL 쿼리를 실행하는 코드가 있습니다. WebMatrix.Data.DynamicRecord를 MyObject로 변환하는 방법이 있습니까?

답변

0

강력한 방법이 있다고 생각하지 않습니다. myObject의 생성자에 동적 레코드를 가져 오는 것이 좋습니다. 그런 다음 루프 : 생성자에서

MyObject obj = new MyObject(records.ElementAt(i)); 

내 객체

public MyObject(dynamic r) 
{ 
    a = r.a; 
    b = r.b; 
    // ... 

} 

에 대한 분명 데이터베이스의 행에서왔다 클래스와 r.a의 구성원입니다. 이것은 지루한 동안, 그것은 작동합니다. 아마도 디폴트 또는 오류 검사 또는 생성자에 적절한 null 처리가있을 수 있습니다.