0

重複の可能性:
オブジェクトが複合型である Entity Framework で SProc を ObservableCollection にマップする関数を正しく呼び出す方法

CollectionViewSource を使用して ListBox にバインドできるように、ストアド プロシージャ (複雑な型に適切にマップされていると思われる) の出力を ObservableCollection に取得する必要があります。他に何を試すべきかわかりません。

私のコードは次のようになります。

    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 と null パラメーターの両方を使用して関数マッピングをテストすることです。これは、SProc が 2 つの入力値を取り、すべてが null 可能であるためです。

最終的に、別の listbox.SelectedValue プロパティを 2 番目の入力パラメーターとして使用します。

私は、いくつかの整数型 ID を同じように手動でフィードすることもできると考えました (例: this.myEntities.GetParts(5,161))。それぞれがそれらの ID を持つ属性を持っている部品番号のリストを返します。

4

1 に答える 1

0

がストアド プロシージャにマップされていると仮定するとthis.myEntities.GetParts(selectedPartShape.attributeID, null)、null パラメータが原因でエラーが発生していると推測できます。AttributeViewです。attributeId Nullable <int>またはint ですか? 分野?

于 2012-08-10T05:52:10.260 に答える