2010-04-30 4 views
20

Visual Studio 2010에서 EF4를 사용하고 있습니다. SQL 데이터베이스가 이미 생성되어 있고 모든 열은 SQL 관리 스튜디오의 Description 속성으로 설명되어 있습니다. Visual Studio에서 edmx를 만들 때 어떻게 설명을 읽고 생성 된 클래스에 주석을 추가 할 수 있습니까? edmx 속성에서 Summary 및 LongDescription을 사용할 수 있지만 모든 설명을 복사하여 붙여 넣지 않고이 작업을 수행 할 방법을 찾고 있습니다.엔터티 데이터 모델 디자이너가 데이터베이스 열 설명을 사용하도록 만들려면 어떻게해야합니까?

감사합니다.

+1

[http://eftsqldocgenerator.codeplex.com/](http://eftsqldocgenerator.codeplex.com/)를보십시오. 그 일을하는 것처럼 보입니다. 비록 그것을 테스트하지 않았습니다. – Kamyar

+1

감사합니다. @kamyar. 나는 그것을 갈래 털어서 EF5를 위해 고쳐 주었다. 업데이트 된 사본을 얻으려면 https://github.com/timabell/ef-document-generator –

+1

다운로드 링크를 통해 https://github.com/timabell/ef-document-generator/releases/latest를 다운로드하면됩니다. 개인적인. –

답변

1

디자이너 자체에 확장 점이 있는지 알 수 없습니다. 그러나 요약 및 LongDescription 필드가 edmx 파일에 채워지면 다른 값을 변경하거나 데이터베이스에서 모델을 다시 업데이트하더라도 해당 값이 그대로 유지됩니다. 표를 삭제하고 다시 추가하지 않으면 해당 값이 채워집니다.

한 번에 하나씩 전체를 복사하여 붙여 넣을 수 있습니다 (모델에 몇 개의 테이블이 있습니까?) 생각보다 빨리 진행됩니다. 또는 SQL을 사용하여 데이터베이스에서 정보를 추출하는 프로그램을 작성하십시오 SMO 또는 무언가), 그 프로그램이 당신의 edmx 파일을 편집하고 요약 및 LongDescription 필드를 채우도록하십시오 (프로그램을 시도 할 때마다 edmx의 백업을 만드십시오 - edmx 파일을 망치고 다시 시작해야 할 필요가 없습니다)).

대형 모델을 보유하고 있고 많은 모델을 만들고 있다면 자동으로 수행 할 프로그램을 작성하는 것이 좋습니다. 너무 많은 테이블이 아닌 몇 가지 모델 만있는 경우 복사하여 붙여 넣으십시오.

피드백을 Entity Framework 팀 here에 제출하는 것에 대해 생각해보십시오. 디자이너 처럼이 SQL Server의 설명 필드에서 자동으로 선택되어야합니다. 좋은 기능을 요청할 것입니다.

5

기능 요청이 있습니다. 미래에 사용할 수 있도록 표를 추가하십시오. Retrieve the SQL Descriptions in Entity-Framework feature request

Huagati에는 EF 및 L2S 작업을위한 훌륭한 도구가 있습니다. Huagati website

웹 사이트에서 : 데이터베이스에서 업데이트 ADO.NET 엔터티 데이터 모델 문서에서 무료로 텍스트 테이블과 컬럼 설명 및 인덱스 정의를 검색하는 기능 중 하나는 SQL 데이터베이스를 기반으로 EF 문서를 업데이트 EDMX 디자이너의 XML 문서 필드를 설명과 함께 업데이트합니다.

그들은 데이터베이스에서 이러한 필드를 찾은 다음 모델 XML을 직접 업데이트하는 것 같습니다. 아마 당신이 원하는 유일한 기능이라면 누군가가 가격없이 동일하게 기능하는 VS Add-In을 만들 수 있습니다. 나는 이것을 "future"projects 의 목록에 추가 할 것이다. (나는 결코 이것들을위한 시간을 찾지 못한다!).

희망 하시겠습니까?

+0

Huagati DBML/EDMX Tools는 이제 무료입니다. – Valentin

+0

기능 요청 링크는 로그인 벽 뒤에 있으며 404S에 로그인하면됩니다. 나는이 기능 요청이 완전히 다시 작성된 EF7에서 작업하고 있다고 생각합니다. 마이크로 소프트는 이전의 훌륭한 아이디어를 사용해야하는 사람들을 보살 피는 훌륭한 방법을 확신합니다. :/ –

+0

Huagati 도구는 VS 2015에서 작동하지 않는 것으로 보이며 개발자는 유지 관리에 관심을 잃은 것으로 보입니다. 그들은 상용 도구 였고 이제는 무료 였고 이제는 버려졌습니다. 나는 그들에게 충분한 관심이 없다고 생각한다. –

2

저는 데이터베이스에서 메타 데이터로 edmx를 채우기 위해 함께 해킹하는 방법을 살펴 보았습니다.

요약 및 자세한 설명 edmx 등록 정보는 EntityType 요소 아래의 요소에 저장됩니다.

<EntityType Name="EntityName"> 
    <!-- Without this element classes are typically generated with 
     "No Metadata Documentation available." --> 
    <Documentation> 
      <Summary>Entity Summary</Summary> 
      <LongDescription>Entity Long Description</LongDescription> 
      </Documentation> 
    <Key> 
     <PropertyRef Name="Id" /> 
    </Key> 
    <Property Name="Id" Type="String" Nullable="false" MaxLength="25" Unicode="false" FixedLength="true" /> 
    <!-- Lots of other properties --> 
    </EntityType> 

edmx 파일의 관련 섹션은 스키마 정의 언어 (SSDL)는, System.Data.Entity.Design.EntityStoreSchemaGenerator.GenerateStoreMetadata()에 의해 생성된다. 또는 적어도 EdmGen의 경우입니다.

XML을 출력하기 위해 EntityStoreSchemaGenerator.WriteStoreSchema (...)가 사용하기 전에 EntityStoreSchemaGenerator.StoreItemCollection을 수정할 수 있는지 확인합니다.

업데이트

잘하는 것은 성가신였습니다. System.Data.Metadata.Edm.Documentation은 봉인되어 있으며 내부 생성자 만 있습니다. 관심있는 두 속성은 내부적으로 만 설정할 수도 있습니다. 그래서 막 다른 방향으로 접근하는 것 같습니다.

관련 문제