从微软访问属性.AnalysisServices类

本文关键字:AnalysisServices 属性 访问 微软 | 更新日期: 2023-09-27 18:03:54

我一直在尝试从以下链接访问SSAS测量组的属性。我不擅长编程。

https://msdn.microsoft.com/en-us/library/ms154309 (v = sql.120) . aspx

My Expected Output is

MeasureGroupName (String) ,  Source  (string) 

我可以把一些代码如下…请帮助我完成这项工作。

Cube cube = database.Cubes.FindByName(cubeName);
MeasureGroup sampleMeasureGroup = cube.MeasureGroups[0];
var measures = sampleMeasureGroup.Source;

从微软访问属性.AnalysisServices类

如果您只需要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 Helper报告。

或者BIDS Helper是一个开源项目,因此您可以在这里看到它是如何导航度量和DSV表的