2012-06-25 10 views
0

sqlmetal 생성 연관 이름은 많은 좌절의 원인이었습니다. 때때로 연관은 단순히 "Id"가 끝나는 열 이름이며, 때로는 외래 키 제약 조건 이름을 기반으로 한 연관 이름을 생성합니다.sqlmetal은 연결 이름을 어떻게 생성합니까?

나는이 이름들을 생성하기 위해 어떤 단계를 사용하는지 간단히 알 수 없으며, 최근의 스키마 변경으로 연관 이름이 크게 바뀌었기 때문에이를 처리하고 싶습니다.

나는 일종의 체인에서 서로를 참조하는 두 개의 테이블을 가지고있다.

class In 
{ 
    int Id; 
    EntityRef<Out> Yields; // YieldsId => FK_Out_Source 
    EntitySet<Out> In_Source; // FK_In_Source 
} 
class Out 
{ 
    int Id; 
    EntityRef<In> Yields;  // YieldsId => FK_In_Source 
    EntitySet<In> Out_Source; // FK_Out_Source 
} 

이들은 스키마 변경 이전의 클래스로, 입력 및 출력 테이블 사이에 여분의 FK 필드가있었습니다. 해당 필드를 삭제 한 후, sqlmetal 이제이 생성

class In 
{ 
    int Id; 
    EntityRef<Out> Yields; // YieldsId => FK_Out_Source 
    EntitySet<Out> Out; // FK_In_Source 
} 
class Out 
{ 
    int Id; 
    EntityRef<In> In;   // YieldsId => FK_In_Source 
    EntitySet<In> Out_Source; // FK_Out_Source 
} 

이전 수업은해야으로 완벽하게 대칭 있었지만, 지금은 생성 된 클래스는 완전히 비대칭이다. 아무도 이것을 설명 할 수 있습니까?

답변

0

나는 운율이나 이유가 없어 보였으므로 sqlmetal을 래핑하고 연결 이름을 다시 작성하는 명령 줄 도구를 만들었습니다. 그것은 내 오픈 소스 사사 유틸리티 프레임 워크에 포함되어 있으며, sasametal이라고합니다.