如何通过 DacFx 获取 table 对象的 SSDT 扩展 属性 值

How can I get the SSDT Extended Property values of a table object via DacFx

我想检索我的 SSDT 表和列的扩展 属性 的值,这样我就可以将它用于我正在使用 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';

在我加载列信息的 T4 模板中,我有这个:

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

我不确定 ???部分以获得此扩展 属性 信息。有什么想法吗?

我能够获取有关该列的其他属性,例如可空性、精度等。

关于此的 MS 文档有点......缺乏。

扩展 属性 不是列的 属性,它是相反的,即列是扩展 属性 所指的内容!

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);

扩展此方法链接混乱以遍历对象的 所有 扩展属性留作 reader...

的练习