2017-04-27 8 views
1

SSDT 테이블과 열의 확장 속성 값을 가져 와서 일부 모델 생성 작업에 사용할 수 있도록하고 싶습니다. T4 사용.DacFx를 통해 테이블 ​​개체의 SSDT 확장 속성 값을 얻는 방법

온라인으로 수행 한이 사례를 찾을 수 없습니까?

var property = column.GetProperty<string>(???); 

아니에요 :이가 내가 열 정보를로드하고있어 내 T4 템플릿

GO 
EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = 
N'somepropertytext', @level0type = N'SCHEMA', @level0name = N'dbo', 
@level1type = N'TABLE', @level1name = N'table_name', @level2type = 
N'COLUMN', @level2name = N'column_name'; 

:

는 다음과 같이 추가 할 수있는 확장 된 속성입니다 확실히 무엇에 들어가는? 이 확장 속성 정보를 얻는 부분. 어떤 아이디어? 이에 등

MS의 문서 내가 널 (NULL), 정밀 같은 컬럼에 대해 다른 속성을 얻을 수 있어요

는 부족 ... 조금이다.

답변

1

확장 속성은 열의 속성이 아니며, 그 반대의 경우입니다. 즉, 확장 속성이 참조하는 열입니다.

var propertyName = column.GetReferencing() 
    .Where(x=> x.ObjectType.Name == "ExtendedProperty").First() 
    .Name.ToString(); 

var propertyValue = column.GetReferencing() 
    .Where(x=> x.ObjectType.Name == "ExtendedProperty").First() 
    .GetProperty(ExtendedProperty.Value); 

... 객체의 모든 속성을 확장 독자 운동으로 남아 위에

+0

이 루프를이 방법 체이닝 소동 확장. 그렇지. 굉장해. 대단히 감사합니다 !! – CBerg

+0

단지로, 나는 다음과 같은 한 사람이 읽기에 대한 후속 : 'foreach는 (allTables에서 VAR 테이블) { VAR tableextended = table.GetReferencing() 어디에요 (X => x.ObjectType.Name을 == "ExtendedProperty") .FirstOrDefault()? .GetProperty (ExtendedProperty.Value); // } 만약 이 작동 중이며 제대로 속성 필드를 가져오고 있는지 확인하십시오. – CBerg