Привязка к результату ComplexType хранимой процедуры в Entity Framework (WPF C#)

Возможный дубликат:
Как правильно вызвать функцию, которая сопоставляет SPrc с ObservableCollection в Entity Framework, где объекты имеют сложный тип

Мне нужно получить вывод моей хранимой процедуры (которая, как я считаю, правильно сопоставлена ​​со сложным типом) в ObservableCollection, чтобы я мог привязать ее к ListBox с помощью CollectionViewSource. Я не знаю, что еще попробовать.

Мой код теперь выглядит ТОЧНО так:

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
          CollectionViewSource GetParts_ResultViewSource = ((CollectionViewSource)(this.FindResource("getParts_ResultViewSource");

          GetPart_ResultViewSource.Source = this.selectedPnsCollection;
     }

     private ObservableCollection<GetParts_Result> selectedPnsCollection = new ObservableCollection<GetParts_Result>();

     private void shapeAttributeLBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
     {
          AttributeView selectedPartShape = this.shapeAttributeLBox.SelectedValue as AttributeView;
           if (shapeAttributeLBox.SelectedValue != null)
           {
                 selectedPnsCollection.Clear();
                 foreach (GetParts_Result result in 
                      this.myEntities.GetParts(selectedPartShape.attributeID, null));
                      {
                          selectedPnsCollection.Add(result);
                      }
              }
       }
      }

Однако я получаю внутреннее исключение, в котором говорится

 "{"Procedure or function 'GetParts' expects parameter '@@partShape', which was not supplied."}"

Но он был предоставлен... или я так думал... и как int, чего и ожидает моя хранимая процедура.


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

В конце концов, я буду использовать другое свойство listbox.SelectedValue в качестве второго входного параметра.

Я подумал, что с тем же успехом мог бы вручную передать некоторые идентификаторы целочисленного типа (например, this.myEntities.GetParts(5,161), чтобы вернуть список номеров деталей, каждый из которых имеет атрибуты с этими идентификаторами.


person Community    schedule 10.08.2012    source источник


Ответы (1)


Предполагая, что this.myEntities.GetParts(selectedPartShape.attributeID, null) сопоставлен с хранимой процедурой, я бы предположил, что вы получаете ошибку из-за нулевого параметра. Является ли поле AttributeView.attributeId полем Nullable‹int› или int??

person PrimeNerd    schedule 10.08.2012
comment
Кроме того, забыл упомянуть, что, согласно Intellisense, мой SPrc получает int? в качестве входных данных, а AttributeView.attributeID не имеет значения NULL, что кажется здесь неуместным, поскольку я пытался использовать только известные мне целочисленные значения для возврата результатов в SQL в качестве входных параметров. - person ; 10.08.2012