2011-09-12 1 views
2

약 600 개의 테이블이있는 테이블에서 PetaPoco를 사용하려고하지만 소수의 테이블 만 매핑하려고합니다.매핑 된 테이블을 PetaPoco에 명시 적으로 포함하는 방법

매핑을 원하는 테이블을 명시 적으로 지정하는 방법이 있습니까? t4 템플릿의 설정 (tables["tablename"].Ignore = true)은이 방법으로 확장되지 않습니다.

답변

4

내가 이런 식으로 일을 결국 :

var tablesToLoad= new string[] { 
"TableOne", 
"TableTwo", 
"ViewOne", 
"Etc" }; 

var tables = LoadTables(); 

foreach(var t in tables) 
{ 
    if(!tablesToLoad.Contains(t.Name)) 
    { 
    t.Ignore = true; 
    } 
} 
2

내가했던 일을, 나는 새로운 데이터베이스 사용자를 만든 만 내가 필요로하는 테이블에 액세스 할 수있었습니다.

그런 다음 데이터베이스 사용자와 T4 템플릿을 연결하고 PetaPoco는 필요한 테이블 만 보았습니다.

1

이 할당을 무시 가득 T4 템플릿을 피하기 위해 유사한

Tables tables = LoadTables(); 

foreach(Table t in tables) 
    { 
     if(!t.Name.Contains("all_user_group")) 
     { 
      t.Ignore = true; 
     } 
    } 
+0

때로는 사용자 환경에 대한 수준의 제어 권한이 없습니다. 테이블을 무시하고 싶은 정당한 이유가 많이 있습니다. –

+0

@ Clay - 그건 사실입니다. 그러나 옵션이 존재하면 T4 템플릿을보다 깨끗하게 유지하고 디버깅을 쉽게합니다. – Jason

관련 문제