Создание объекта ADO.NET из представления без ключа (или хранимой процедуры) - PullRequest
0 голосов
/ 13 июля 2010

Используя представление и / или хранимую процедуру, я могу вернуть результаты выполнения запроса MDX для служб аналитики SQL (используя OPENROWSET для связанного сервера SSAS в SQL).

К сожалению, результирующий набор не включает поле PK ... или, в этом отношении, даже столбец, который МОЖЕТ действовать как PK, если бы я взломал модель.

Кто-нибудь может вспомнить хакерский трюк, который я могу использовать:

  1. Добавить поле к моему результату, в котором будет вставлено некоторое автоинкрементное значение (для действия в качестве кандидата в ПК)
  2. Каким-то образом установить это поле в PK, чтобы я мог легко построить из него сущность?

Я на 99% уверен, что ответ "нет". На данный момент я уже могу получить данные из SSAS, используя отчет SSRS с визуализацией OData ... но мне приходится создавать свои типы вручную, когда я использую play w / LINQ.

Если кто-то может прибить для меня № 1 и № 2, это может быть потенциально лучший способ доступа к данным, так как Modeler создаст мои типы (сущности) для меня.

Спасибо!

1 Ответ

0 голосов
/ 15 июля 2010

Я не уверен, что понимаю, почему у вас не может быть столбца, который мог бы выступать в качестве первичного ключа. Я только что выполнил аналогичный запрос к одному из моих кубов, отфильтрованных по списку членов, и имя каждого столбца содержало имя члена. Вот пример:

Представление:

 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
...