重複の可能性:
オブジェクトが複合型である 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 を持つ属性を持っている部品番号のリストを返します。