【发布时间】:2011-12-12 05:34:14
【问题描述】:
我有一个要求,我需要从 SSAS 多维数据集检索数据并将其发送到 OData。怎么可能呢?任何帮助将不胜感激。任何指向示例代码的指针也将不胜感激。
感谢和问候,
文卡特什。 S
【问题讨论】:
标签: ssas odata wcf-data-services
我有一个要求,我需要从 SSAS 多维数据集检索数据并将其发送到 OData。怎么可能呢?任何帮助将不胜感激。任何指向示例代码的指针也将不胜感激。
感谢和问候,
文卡特什。 S
【问题讨论】:
标签: ssas odata wcf-data-services
您可以使用 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;
}
}
【讨论】:
您可以使用 LINQ 和 ADO.NET Entity Framework 查询 SSAS 多维数据集。 您将需要 SSAS 实体框架提供程序才能做到这一点: http://agiledesignllc.com/products
此选项使构建 WCF 数据服务变得简单而简单。
【讨论】:
我假设它是 SSAS 多维数据集。不确定具体的框架可以做到这一点。 但一种可能的解决方案: 使用存储过程包装多维数据集 (MDX)。 (从 SP 使用 MDX 访问 SSAS) 您可以创建 WCF 数据服务,添加 EM 并为 EM 指定存储过程。您应该能够将它们公开为 oData。
【讨论】: