Обработать табличную модель SSAS из C#

Итак, я установил AMO и создал следующее консольное приложение:

using System;
using Microsoft.AnalysisServices;
using Microsoft.AnalysisServices.Tabular;


namespace procesarCuboSSAST
{


    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string ConnectionString = "Data source=SERVER\\BI";


                using (Microsoft.AnalysisServices.Tabular.Server server = new Microsoft.AnalysisServices.Tabular.Server())
                {
                    server.Connect(ConnectionString);

                    Microsoft.AnalysisServices.Tabular.Database Db = server.Databases["TestModel"];     //Connect to the DB

                    Model m = Db.Model;


                  m.RequestRefresh(Microsoft.AnalysisServices.Tabular.RefreshType.Full);
                    m.SaveChanges();
                }
                Console.WriteLine("Press Enter to close this console window.");
                Console.ReadLine();



            }
            catch (Exception e)
            {
                Console.Write(e.Message.ToString());
                Console.WriteLine("Press Enter to close this console window.");
                Console.ReadLine();

            }
        }
    }
}

Однако я получаю сообщение об ошибке: "ссылка на объект не указывает на экземпляр объекта"

Я могу правильно перечислить базы данных и модели в экземпляре SSAS с помощью

 foreach (Database db in server.Databases) 
                { 
                    Console.WriteLine("Properties for database {0}:", db.Name); 
...

Мой сервер — SSAS 2014 Enterprise (табличный) (12.0.5000.0)


person Jack Casas    schedule 03.09.2018    source источник
comment
Вы разместили сообщение об ошибке, которое является началом. Теперь укажите, пожалуйста, в какой строке это происходит.   -  person Nick.McDermaid    schedule 03.09.2018
comment
m.RequestRefresh   -  person Jack Casas    schedule 10.09.2018
comment
ОК, это означает, что m не создан должным образом. Вам просто нужно запустить это в режиме отладки и проверить переменные по мере прохождения и выяснить, где происходит сбой.   -  person Nick.McDermaid    schedule 11.09.2018


Ответы (1)


Какой уровень совместимости у табличной модели, которую вы пытаетесь обработать? Класс Model предназначен только для табличных моделей уровня 1200 и выше. Класс Database позволит вам просматривать модели на более низком уровне совместимости, но не изменять их, поэтому вы можете перечислить базы данных SSAS в экземпляре, но не обрабатывать их. Ссылки ниже содержат дополнительную информацию об этих классах.

Класс модели

Класс базы данных

person userfl89    schedule 17.09.2018