2017-06-01 4 views
2

Je tente d'automatiser les actualisations de partition dans Azure Analysis Services via C#. J'ai installé et référencé les derniers 'Microsoft.AnalysisServices'. .. 'assemblages trouvés ici:Exception lors de la référence au modèle tabulaire SSAS en C#

https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-data-providers.

J'ai alors le code suivant:

using System; en utilisant Microsoft.AnalysisServices.Tabular;

public void Run() 
    { 
     Server asSrv = new Server(); 

     try 
     { 

      asSrv.Connect(ASConnectionString); 
      Database db = asSrv.Databases.FindByName("HospoIQTabular"); 
      Model m = db.Model; 

      // only refresh 2017 partitions 

      m.Tables["Sales"].Partitions["Sales - Post 2017"].RequestRefresh(RefreshType.Full); 
      m.Tables["Payments"].Partitions["Payments - Post 2017"].RequestRefresh(RefreshType.Full); 

      db.Model.SaveChanges();  // commit which will execute the refresh 

     } 
     catch (Exception e) 
     { 
      OnEventLog(e.Message); 
     } 
     finally 
     { 
      asSrv.Disconnect(); 
      asSrv = null; 
     } 

    } 

Connectez-vous au serveur et la base de données fonctionne correctement. Cependant, tenter de référencer 'db.Model' renvoie l'exception suivante:

La valeur '2' est inattendue pour le type 'DataSourceType'.

J'ai regardé mais ne trouve aucune aide n'importe où sur ceci. Des pensées??

+1

Je l'ai compris. Besoin d'utiliser les assemblys directement à partir d'ici: C: \ Program Files \ Microsoft Serveur SQL \ 140 \ SDK \ Assemblies. Pas les 130 versions comme indiqué dans certains blogs en ligne. –

+0

votre commentaire m'a aidé, pourriez-vous l'afficher comme réponse à cette question? – arghtype

Répondre

1

Pour moi, le chemin qui a travaillé était C:\Program Files (x86)\Microsoft SQL Server\140\SDK\Assemblies mais seulement après avoir lu un commentaire Andrae qui m'a envoyé sur la bonne direction

+0

Je ne pouvais pas me connecter avec le chemin. Que devrais-je changer dans le chemin? Pouvez-vous être plus concret à propos de cette réponse? – User193452