C# 从Microsoft.AnalysisServices类访问属性
我一直试图通过以下链接访问SSA度量值组的属性。我不擅长编码 我的预期产出是C# 从Microsoft.AnalysisServices类访问属性,c#,ssas,C#,Ssas,我一直试图通过以下链接访问SSA度量值组的属性。我不擅长编码 我的预期产出是 MeasureGroupName (String) , Source (string) 我可以把一些代码如下。。请帮我完成这项工作 Cube cube = database.Cubes.FindByName(cubeName); MeasureGroup sampleMeasureGroup = cube.MeasureGroups[0]; var measures = sampleMeasureGroup.
MeasureGroupName (String) , Source (string)
我可以把一些代码如下。。请帮我完成这项工作
Cube cube = database.Cubes.FindByName(cubeName);
MeasureGroup sampleMeasureGroup = cube.MeasureGroups[0];
var measures = sampleMeasureGroup.Source;
如果您只需要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是一个开源项目,因此您可以查看它如何导航度量值和DSV表。如果您只需要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是一个开源项目,因此您可以看到它如何导航度量值和DSV表。您能否澄清度量值组的“源”是什么意思?您正在查找DSV表名吗?你能举个例子吗?嗨@GregGalloway!我正在使用Microsoft business intelligence suit创建OLAP多维数据集。它是完全基于用户界面的应用程序。使用RDBMS(dsv)上的查询将来自RDBMS的数据推送到测量组。Dsv是度量值组的源。Microsoft提供了库和类来使用代码实现相同的目标。代码在交互OLAP多维数据集方面具有更大的灵活性。我想通过编程知道哪个Dsv与度量值组绑定,这样我就可以在表中保存合并信息。但您想在Dsv中吐出Dsv名称还是表的名称?@Greggallowy我只需要Dsv名称和度量值组。谢谢你能澄清你所说的度量值组的“来源”是什么意思吗?您正在查找DSV表名吗?你能举个例子吗?嗨@GregGalloway!我正在使用Microsoft business intelligence suit创建OLAP多维数据集。它是完全基于用户界面的应用程序。使用RDBMS(dsv)上的查询将来自RDBMS的数据推送到测量组。Dsv是度量值组的源。Microsoft提供了库和类来使用代码实现相同的目标。代码在交互OLAP多维数据集方面具有更大的灵活性。我想通过编程知道哪个Dsv与度量值组绑定,这样我就可以在表中保存合并信息。但您想在Dsv中吐出Dsv名称还是表的名称?@Greggallowy我只需要Dsv名称和度量值组。感谢如何获取用于创建度量值组的命名查询。基本上,我试图将这些信息推送到表格中。稍后,我可以通过查询表来开发SSRS报告。编辑我的答案以包含获取表名的代码。这有点复杂。嗨,VenkatSuryaSunilmodekurthy,如果这个或任何答案都解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这么做。那么,如何获取用于创建度量值组的命名查询呢。基本上,我试图将这些信息推送到表格中。稍后,我可以通过查询表来开发SSRS报告。编辑我的答案以包含获取表名的代码。这有点复杂。嗨,VenkatSuryaSunilmodekurthy,如果这个或任何答案都解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。