如果您已经在使用 ADOMD,这应该没问题,只需使用元数据查询:
http://msdn.microsoft.com/en-us/library/ms123485.aspx
或者,AMO 很好http://msdn.microsoft.com/en-us/library/microsoft.analysisservices.aspx
我在 SSIS 中使用它进行处理,您可以在 .Net 中轻松使用它来测试元素的存在:
using Microsoft.AnalysisServices;
...
Server server = new Server();
server.Connect(cubeConnectionString);
Database database = server.Databases.FindByName(databaseName);
Cube cube = database.Cubes.FindByName(cubeName);
foreach (MeasureGroup measureGroup in cube.MeasureGroups)
{
foreach (Partition partition in measureGroup.Partitions)
{
...
}
}
foreach (CubeDimension cubeDimension in cube.Dimensions)
{
Dimension dimension = cubeDimension.Dimension;
var dimName = dimension.Name;
...
}
为您需要的所有元素提前找到名称可能是困难的部分(并保持所有最新)。
在多维数据集上触发所有查询并尝试捕获“没有这样的事情”响应不是更容易吗?