0

ビューまたはストアド プロシージャを使用して、SQL Analysis Services に対して MDX クエリを実行した結果を返すことができます (SQL にリンクされた SSAS サーバーに対して OPENROWSET を使用します)。

残念ながら、結果セットには PK フィールドが含まれていません...さらに言えば、モデルをハックした場合に PK として機能する可能性のある列でさえありません。

誰でも私が使用できるハッタキュラーのトリックを思いつくことができますか?

  1. 自動インクリメント値を挿入するフィールドを結果に追加します (PK 候補として機能するため)。
  2. どういうわけか、このフィールドを PK に設定して、そこからエンティティを簡単に構築できるようにしますか?

答えは「いいえ」であると 99% 確信しています。この時点で、OData レンダリングで SSRS レポートを使用して、SSAS からデータを取得できます...しかし、LINQ で再生を使用する場合は、手動で型を作成する必要があります。

誰かが私のために #1 と #2 を成功させることができれば、モデラーが私のタイプ (エンティティ) を作成してくれるので、データにアクセスするためのより良い方法になる可能性があります。

ありがとう!

4

1 に答える 1

0

主キーとして機能する列を使用できない理由がわかりません。メンバーのリストにフィルター処理されたキューブの 1 つに対して同様のクエリを実行したところ、各列名にメンバー名が含まれていました。次に例を示します。

提出:

 SELECT Measures.members ON ROWS,
 Customer.[CustomerIdKeyField].[UniqueCustomerId] ON COLUMNS
 FROM [Postage Prints]

戻ってきた:

(colum header)  [Measures].[MeasuresLevel].[MEMBER_CAPTION] [Customer].[CustomerIdKeyField].&[UniqueCustomerId]

(row) Measure1  9.6800000000000015

(row) Measure2  22

(row) Measure3  1
于 2010-07-14T23:26:56.450 に答える