1

我想检索我的 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 doc有点......缺乏。

4

1 回答 1

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

扩展这种方法链接混乱以循环遍历对象的所有扩展属性,留给读者作为练习......

于 2017-04-27T14:22:07.270 回答