2012-07-06 2 views
2

내 문제는 내가 기존 DB에서 내 엔티티를 가져와야한다는 것입니다. DB에는 스키마가 있으며 일부 테이블은 다른 스키마에서 동일한 이름을 공유합니다. 이것이 모델을 생성 할 때 MyTable과 MyTable1을 얻습니다 (호출 된 경우).클래스 이름 접두사 dbSchema 엔터티 프레임 워크

dbo 스키마를 사용하는 경우 이름을 MyTable로 지정하고 다른 스키마에서는 접두사로 스키마 이름을 사용합니다 (예 : MySchema_MyTable.

디자이너에서 이름을 변경하여이 작업을 수동으로 수행 할 수 있지만이 작업은 전적으로 혼자서 수행되지 않을 수 있으며 더 많은 테이블과 스키마가이 데이터베이스에 추가됩니다. 그래서이 명명 규칙을 시행하고 싶습니다.

t4 템플릿을 사용하는 것이 가장 좋은 방법이라고 생각했습니다. 나는 쉽게 그것을 접두어를 추가하기 위해 변경할 수 있으며이 작동하지만, 특정 엔터티에 대한 데이터베이스 스키마 이름을 얻는 방법을 모르겠습니다. T4 템플릿은 인텔리 센스와 함께 제공되지 않습니다.

귀하의 제안에 감사드립니다.

감사합니다,

+0

귀하의 질문에 명확하지 않습니다. 데이터베이스의 모든 테이블을 탐색하고 스키마 이름을 포함하여 "완전히 범위가 지정된"이름을 결정한 후 완전히 범위가 지정된 이름을 사용하여 코드를 생성하는 T4 템플릿을 작성 하시겠습니까? 또한, 어떤 데이터베이스를 사용하고 있습니까? –

+0

네, 요약하면 데이터베이스의 모든 테이블을 통과하여 각 테이블을 나타내는 클래스를 만들길 원합니다. 이 클래스의 이름은 "<데이터베이스 스키마 이름> _

"이됩니다. 엔티티 프레임 워크에서 생성 된 edmx 파일에는 스키마 이름과 테이블 이름이 포함되기를 기대했습니다. 감사합니다 – user1506481

+0

[T4 템플릿 생성 열거 형] (http://stackoverflow.com/a/4480173/1380680) 및 [이 블로그 게시물] (http://blog.sqlauthority.com/2009/06)에 대한 위대한 답변을 확인하십시오./17/sql-server-list-schema-name 및 데이터베이스 용 테이블 이름 /). 이 둘을 결합하면 SQL Server를 사용하는 경우 찾고있는 것을 얻을 수 있거나 특정 DB에 맞게 조정할 수 있습니다. 그게 전혀 도움이 되나요? –

답변

0

당신은 TiraggoEdmx를 사용하여 데이터베이스 정보를 얻을 수 있습니다. http://brewdawg.github.io/Tiraggo.Edmx/을 참조하십시오. Visual Studio에서 NuGet을 통해 설치할 수 있으며, Microsoft에서 숨긴 EDMX 파일의 모든 메타 데이터를 제공합니다. 매우 간단하고 훌륭하게 작동합니다.