我想检索我的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>(???);
我不知道????部分获取此扩展属性信息。有什么想法吗?
我能够获得有关列的其他属性,如nullable,precision等。
MS doc对此有点......缺乏。
答案 0 :(得分: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);
扩展这种方法 - 链接混乱以循环遍历对象的所有扩展属性,留给读者练习......