В этом проекте мы динамически создаем многомерный куб с помощью Microsoft.AnalysisServices в VB.NET. Этот код использовался в течение нескольких лет, и теперь нам нужно внести изменения.
Добавляем таблицу фактов с полем D1.
Затем мы добавляем ассортимент основных таблиц, включая D1 и отношения. Таким образом, мы программно добавляем отношения для D1 с чем-то вроде:
DataSourceView.Schema.Relations.Add(pkColumn, fkColumn)
Добавляем размер D1 и определяем Ключ / Имя:
Private Function GenerateAttributeDimensionGeneric(ByVal objDatabase As Database, ByVal objDataSourceView As DataSourceView) As Object
Dim objDimension As New Dimension()
objDimension = objDatabase.Dimensions.Add("D1")
objDimension.Source = New DataSourceViewBinding(objDataSourceView.ID)
Dim objDimensionAttributesColl As DimensionAttributeCollection = objDimension.Attributes
Dim objAttribute As DimensionAttribute = objDimensionAttributesColl.Add("D1_PK")
objAttribute.Usage = AttributeUsage.Key
objAttribute.KeyColumns.Add("D1", "D1_PK", OleDbType.[Integer])
objAttribute.NameColumn = New DataItem("D1", "AttributeValueName")
Это работает, денди. Теперь нас просят добавить пользовательские параметры сортировки на D1. Поэтому мы добавили новое поле (iOrder) в схему и изменили импорт, чтобы включить его в таблицу D1.
При добавлении Dimension D1 с использованием приведенного выше фрагмента кода я пытаюсь настроить его на использование iOrder.
objAttribute.AttributeRelationships.Add("iOrder")
objAttribute.OrderBy = OrderBy.AttributeName
objAttribute.OrderByAttribute.Name = "iOrder"
после последней строки я получаю сообщение об ошибке.
Ссылка на объект не установлена для экземпляра объекта.
У кого-нибудь есть мысли или примеры пользовательских заказов с использованием C # / VB.NET? использовал это , чтобы получить меня так далеко.