データバインドされたDataGridViewで外部キーの参照を表示できるようにするWinFormsアプリケーション(.Net 3.5、WPFなし)を開発しています。WinFormsデータバインディングと外部キーの関係
私はOrderLinesのテーブルを持っているということです。注文行には、製品と外部キーの関係があり、ProductはProductTypesとの外部キー関係を持っています。
私はDataBound DataGridViewを持っています。各行は注文ラインを表し、ラインの製品と製品タイプを表示します。
ユーザーは、グリッドに直接注文線を追加または編集し、comboBoxColumnから注文行の製品を選択することができます。これにより、選択した製品の製品タイプを示すproducttype列が同じ行に更新されます。
私が今までに見つけたことに最も近いのは、注文線を表すドメインオブジェクトを導入し、DataGridViewをこれらの注文線のコレクションにバインドすることです。次に、製品と製品タイプを公開しているorderlineオブジェクトにプロパティを追加し、関連するnotifypropertychangedイベントを発生させて、最新の状態に保ちます。私のオーダーラインリポジトリでは、このオーダーラインオブジェクトとデータベースの3つのテーブルの間のマッピングを結びつけることができます。
これは物事のデータバインディング側では機能しますが、リポジトリ内のすべてのORマッピングが悪いと思われるコードを手渡す必要があります。私はnHibernateがこの配線を助けることができると思ったが、すべての外部キーを介したマッピングに苦労している - 注文ラインの製品に対する外部キーの参照は、外部キーに基づいて正しい製品オブジェクトを作成する)データバインディングを実行しようとすると、databound idカラムを取得して製品または製品タイプのオブジェクトを更新できません。
私の一般的なアプローチは適切な球場でさえですか?そうであれば、マッピング問題の良い解決策は何ですか?
また、私が考慮していない外部キーの参照を含むデータバインディングの方が良いソリューションがありますか?
Garo - ありがとうございました。唯一の違いは、グリッドではなく、外部キーの列があることです。 私は私の問題を引き起こしていた原因を明確にして、私の元の応答も更新するつもりです。私が最初にこの問題を誤診した理由が有用かもしれないと思います –