2009-08-19 5 views
1

나는 이전에 묻는 질문을 통해 주위를 파고 있었고 중복 된 행운을 찾지 못했습니다. DB2 스키마 (iSeries OLEDB 공급자 사용)에서 .Net의 기본 엔티티 클래스를 생성하고 싶습니다. 이 작업을 수행하는 간단한 방법이 있습니까? MyGeneration과 CodeSmith를 살펴 보았습니다. 더 쉬운 방법이 있어야 할 것처럼 보입니다.데이터베이스 스키마의 클래스 생성

미리 감사드립니다.

편집 나는 그것이-해제 혹평 문제를 조금 할 희망이 떨어져는 iSeries 태그를 복용하고 있습니다. 누구나 어떤 ADO.Net 또는 OLEDB 제공 업체와 비교하여 사용해 본 사람이 있습니까? 나는 iSeries에서 작동하도록 그것을 적용 할 수 있다고 생각한다.

EDIT # 2 iSeries 태그를 다시 추가하고 며칠 후에 내 자신의 대답을 수락 할 것이므로 앞으로 누군가 도움이 될 것입니다. +1 응답자, 감사합니다.

답변

0

더 많은 연구가 끝나면 코드 생성기를 직접 작성하기로 결정했습니다. 내가 요청한 이유 중 하나는 .Net 용 iSeries 제공 업체가 그리 강력하지 않기 때문에 스키마 정보를 열거 할 방법이 없다는 것입니다. 그러나 this question을 찾은 후,이 같은 간단한 인라인 SQL을 사용하여 할 수 있었다 :

//Enumerate schema tables (excludes views) 
select table_name from qsys2.tables where table_schema = 'schema_name' and table_type = 'BASE TABLE' 

//Enumerate table columns 
select * from qsys2.columns where table_schema = 'schema_name' and table_name = 'table_name' order by ordinal_position; 

아마이 미래에 사람을 도움이 될 것입니다.

+0

이것은 스키마 데이터를 생성 할 수 있지만 C# 클래스 정의를 어떻게 생성합니까? get/put metods를 생성하여 데이터베이스에서 /로 데이터베이스를 가져오고 싶지 않습니까? –

1

이 아마도 긴 호흡이 조금이지만, 하나의 방법은 NORMA VS plug in 다음이에서 플러그와 함께 제공되는 PLiX 발생기를 통해 .NET 클래스를 생성 사용하여 개체 역할 모델링 다이어그램으로 스키마를 리버스 엔지니어링하는 것입니다.

결과 클래스가 필요하지 않은 추가 멤버로 장식되어있을 수도 있습니다 (필요에 따라 구성 요소 모델 컨텍스트에서 사용할 수 있도록 코딩되어 있으므로 이러한 추가 인공물을 쉽게 제거 할 수 있습니다).

+0

답장을 보내 주셔서 감사합니다. –

2

Jeeves를 사용해 보셨습니까? Perl로 작성된 템플릿 기반 코드 생성기입니다.

Jeeves를 사용하면 사양 파서와 템플릿을 별도로 수정하고 Perl 명령을 템플릿에 삽입 할 수 있습니다.

내가 정확히 당신이 원하는 것을하지 않았다,하지만 내가 한 것은 다음과 같은 한 : OO 파서 분산으로-하고, 사양 파일 내 개체 정의를 생성

1) 사용 지브 '하는 이 구문 분석기가 읽을 수있는 형식입니다. 2) OO 파서가 내 사양 파일에서 생성 한 추상 구문 트리를 사용하기 위해 템플릿을 코딩했습니다. 3) 이것은 Perl에서 코드 생성기를 생성합니다. 나는이 코드 생성기를 pre-buld 이벤트 (VS 2005)라고 불렀고, 생성 된 코드는 바로 컴파일되었다.

원하는 템플릿 (그리고 아마도 스펙 파서)을 빌드해야하지만 그렇게하면 여분의 많은 오버 헤드없이 원하는 것을 정확하게 출력 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. –

관련 문제