我一直在尝试从以下链接访问SSAS的Measure Group的属性。我不擅长编码。
https://msdn.microsoft.com/en-us/library/ms154309(v=sql.120).aspx
我的预期输出
MeasureGroupName (String) , Source (string)
我能够提供如下代码..请帮我完成这项工作。
Cube cube = database.Cubes.FindByName(cubeName);
MeasureGroup sampleMeasureGroup = cube.MeasureGroups[0];
var measures = sampleMeasureGroup.Source;
答案 0 :(得分:0)
如果您需要的只是DSV名称,则对于多维数据集中的每个度量值组都是相同的。所以这段代码会得到它:
Cube cube = database.Cubes.FindByName(cubeName);
string sDSV = cube.DataSourceView.Name;
获取表名:
Cube cube = database.Cubes.FindByName(cubeName);
MeasureGroup sampleMeasureGroup = cube.MeasureGroups[0];
DataItem di = sampleMeasureGroup.Measures[0].Source;
if (di == null) return null;
ColumnBinding cb = di.Source as ColumnBinding;
RowBinding rb = di.Source as RowBinding;
string sTableID = (cb != null ? cb.TableID : (rb != null ? rb.TableID : null));
if (sTableID == null) return null;
if (cube.DataSourceView.Schema.Tables[sTableID] != null)
{
if (cube.DataSourceView.Schema.Tables[sTableID].ExtendedProperties.ContainsKey("FriendlyName"))
{
return cube.DataSourceView.Schema.Tables[sTableID].ExtendedProperties["FriendlyName"].ToString();
}
else
{
return cube.DataSourceView.Schema.Tables[sTableID].TableName;
}
}
else
{
return sTableID;
}
如果您需要列出度量值组的DSV表名称,那么您可以尝试使用此BIDS帮助程序report。
或者BIDS Helper是一个开源项目,因此您可以看到它如何导航度量和DSV表here。