使用WCF数据服务访问SSAS多维数据集

时间:2011-12-12 05:34:15

标签: ssas odata wcf-data-services

我有一个要求,我需要从SSAS多维数据集中检索数据并将其发送到OData。怎么办?任何帮助将不胜感激。任何指向示例代码的指针也将非常感激。

谢谢和问候,

卡塔斯。小号

3 个答案:

答案 0 :(得分:1)

您可以使用ADOMD.Net执行查询并使用wcf发送结果。以下是我经常使用的课程。

class MDXQueryEngine : IMDXQueryEngine
{
    private readonly string _serverName;
    private readonly string _initalCatalog;

    public MDXQueryEngine(string serverName, string initalCatalog)
    {
        _serverName = serverName;
        _initalCatalog = initalCatalog;
    }

    public TResult Execute<TResult>(MDXQuery query, Func<IDataReader, TResult> work)
    {
        var connectionString = string.Format("Data Source={0}; Initial Catalog={1}", _serverName, _initalCatalog);
        TResult result;

        using (var conn = new AdomdConnection(connectionString))
        {
            conn.Open();
            using(var cmd =  conn.CreateCommand())
            {
                cmd.CommandText = query.Expression;
                using (var reader = cmd.ExecuteReader())
                {
                    result = work(reader);
                }
            }
        }

        return result;
    }
}

答案 1 :(得分:1)

您可以使用LINQ和ADO.NET Entity Framework查询SSAS多维数据集。 您将需要SSAS实体框架提供程序才能执行此操作: http://agiledesignllc.com/products

此选项使构建WCF数据服务简单明了。

答案 2 :(得分:0)

我认为它是SSAS立方体。不确定这样做的具体框架。 但一种可能的解决方案 使用存储过程包装多维数据集(MDX)。 (从SP访问带有MDX的SSAS) 您可以创建WCF数据服务,添加EM并为EM指定存储过程。您应该能够将它们公开为oData。