Я создал строго типизированный набор данных в VS 2005 Dataset Designer.Существует две таблицы, которые связаны друг с другом в отношении один ко многим : Claim и ClaimDetail.Дизайнер автоматически создает функцию GetClaimDetailRows, которая возвращает все ClaimDetailRows для ClaimRow. Почему длина этого массива всегда равна 0? Поскольку ClaimDetail содержит более 40 миллионов строк, я не заполнил его до вызова GetClaimDetailRows, но настроил его selectcommand, чтобы он использовал параметр idData для заполнения только связанных записей,Но это, кажется, не работает, потому что ClaimDetail-Datatable пуст.
альтернативный текст http://www.bilder -hochladen.net / files / big / 4709-kt.jpg
Автоматически сгенерированная функция в ClaimRow-Class, которая возвращает все связанныеClaimDetailRows:
Public Function GetClaimDetailRows() As ClaimDetailRow()
If (Me.Table.ChildRelations("Claim_ClaimDetail") Is Nothing) Then
Return New ClaimDetailRow(-1) {}
Else
Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("Claim_ClaimDetail")),ClaimDetailRow())
End If
End Function
При отладке я вижу, что он переходит в блок else, но возвращает 0 строк.Нужно ли мне сначала заполнять заявку-данные-данные (ClearBeforeFill = True) для каждой заявки?Но тогда мне больше не нужно использовать эту функцию.
ОБНОВЛЕНИЕ : Теперь я заполняю таблицу данных (ClearBeforeFill = True) перед тем, как вызвать функцию Child, и она работает.Но я не понимаю, почему он не может выдать исключение (необязательно), когда я пытаюсь установить доступ к дочернему отношению, не заполняя эту таблицу данных (по крайней мере, 0 строками).Вместо этого он возвращает 0 строк, которые могут быть правильными или неправильными и их трудно обнаружить.Это недостаток дизайна или я что-то упустил?