Skip to content
XMLA provider for a .NET Core OLAP client. An alternative of ADOMD.NET.
C#
Branch: master
Clone or download
Latest commit 2f79bc5 Mar 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Release 1.0.0 alpha Feb 25, 2019
tests Adds XMLA client using Mar 19, 2019
.gitignore Adds code Feb 25, 2019
LICENSE Initial commit Feb 25, 2019
README.md ** Mar 19, 2019

README.md

XMLA provider for a .NET Core OLAP client

Provides data access to any OLAP servers that support XMLA protocol and can be accessed over an HTTP connection. It is designed for development of an OLAP client in .NET Core applications that are completely independent of .NET Framework and therefore cannot use ADOMD.NET.

Connection

var connection = new XmlaConnection("Data Source=http://localhost/OLAP/msmdpump.dll;Initial Catalog=AdventureWorksDW2012Multidimensional-SE");

Open Connection

connection.Open();
var sessionId = connection.SessionID;

Close Connection

connection.Close();

Open Connection with SessionId

var connection = new XmlaConnection("Data Source=http://localhost/OLAP/msmdpump.dll;Initial Catalog=AdventureWorksDW2012Multidimensional-SE");
    
connection.SessionID = sessionId;
connection.Open();

Close Connection with SessionId

var connection = new XmlaConnection("Data Source=http://localhost/OLAP/msmdpump.dll;Initial Catalog=AdventureWorksDW2012Multidimensional-SE");
    
connection.SessionID = sessionId;
connection.Close();

Descover

connection.Open();
var command = new XmlaCommand("MDSCHEMA_CUBES", connection);
SoapEnvelope result = command.Execute() as SoapEnvelope;
connection.Close();

Cube Metadata

connection.Open();
CubeDef cube = connection.Cubes.Find("Adventure Works");

KpiCollection kpis = cube.Kpis;
Property prop = kpis[0].Properties.Find("KPI_PARENT_KPI_NAME");

NamedSetCollection nsets = cube.NamedSets;

MeasureGroupCollection mgroups = cube.MeasureGroups;

MeasureCollection meas = cube.Measures;
prop = meas[0].Properties.Find("DEFAULT_FORMAT_STRING");

DimensionCollection dims = cube.Dimensions;
prop = dims[0].Properties.Find("DIMENSION_CARDINALITY");

HierarchyCollection hiers = dims[0].Hierarchies;
Hierarchy hier = cube.Dimensions.FindHierarchy("[Customer].[Customer Geography]");
prop = hier.Properties.Find("HIERARCHY_CARDINALITY");

LevelCollection levels = hiers[0].Levels;
prop = levels[0].Properties.Find("LEVEL_NUMBER");

MemberCollection members = levels[1].GetMembers();
MemberProperty prop = members[0].MemberProperties.Find("PARENT_UNIQUE_NAME");

ActionCollection acts = connection.GetActions("Adventure Works", "([Measures].[Internet Sales-Unit Price])", CoordinateType.Cell);

connection.Close();

Execute CellSet

connection.Open();
var mdx = "SELECT FROM [Adventure Works] WHERE [Measures].[Internet Sales Count]";
var command = new XmlaCommand(mdx, connection);
CellSet cellset = command.ExecuteCellSet();
connection.Close();

Approved OLAP servers

  • Microsoft Analysis Services (MD semantic model)
  • Mondrian

Requirements

  • .NET Core 2.2
You can’t perform that action at this time.