2010-07-14 3 views
0

SubSonic ORM을 사용하는 기존 프로젝트의 소스 코드가 제공되었습니다. 내 (제한적!) 이해는 SubSonic이 기존 데이터베이스를 리버스 엔지니어링하여 코드를 생성한다는 것입니다. 불행히도이 프로젝트에 사용 된 데이터베이스가 없습니다.기존 ActiveRecord.cs 파일에서 데이터베이스 스키마를 얻으려면 어떻게해야합니까?

내가 마지막으로 컴파일 한 시점의 ActiveRecord.cs 파일이 있습니다. 데이터베이스를 재현 할 수 있도록 데이터베이스 스키마를 어떻게 작동시킬 수 있습니까?

답변

1

이것은 SubSonic 3과 같습니다. 내 ActiveRecord.cs 파일을보고 저를 기반으로 시작할 수있는 몇 가지 장소가 있습니다. 작은 데이터베이스를 직접 만들고, SubSonic을 실행하고, ActiveRecord.cs에서 무엇이 생성되는지 볼 수 있습니다.

ActiveRecord.cs 파일 내에 테이블 당 하나의 부분 클래스가 있습니다. 부분 클래스는 IActiveRecord에서 상속되며 테이블의 이름이 될 수 있습니다.

클래스 내부에는 테이블의 기본 키 열 이름을 반환하는 "KeyName()"이라는 함수가 있습니다. SubSonic은 처리하고 코드를 생성하는 테이블에 기본 키가 필요합니다.

"외래 키"라는 이름의 지역을 찾으십시오. 이 테이블에 외래 키가 있으면 "public IQueryable OtherTableNames"와 같은 각 외래 키에 해당하는 속성을 찾을 수 있습니다. 따라서이 테이블에는 "OtherTableNameID"와 같은 이름의 열이 있어야합니다. 외부 키 테이블에 대해 생성 된 부분 클래스를 확인하십시오.

외래 키 영역 바로 아래에서이 테이블의 외래 키 열에 대한 속성을 찾을 수 있습니다. 속성 데이터 유형 (예 : string은 char (x) 또는 varchar (x) 일 수 있음)에서 열의 데이터 유형을 추측 할 수 있습니다.

+0

감사합니다 - 올바른 방향으로 나를 가리 킵니다. –