おはよう。
私は教育を受けたコンピューター科学者ではないので、いかがわしい用語の乱用は見逃してください。
私のフレームワークでは、Record というベース フォームがフォーム RecordDetail をダイアログとして開きます。たとえば、RecordClient は Record を拡張し、クライアント データとクライアント関連の子データのタブ付きリストを含みます。RecordDetail は、DataContext に対して使用されるカスタム属性として保存されたリフレクションと表示オーバーライドに完全に基づいて、詳細な編集のために 1 つの子データ行を展開します。レコードはアプリケーション用にサブクラス化されていますが、RecordDetail をサブクラス化する必要はありません。これは、リストされた子の外部キー編集の表示を除いて機能します。
ObjectListViewと Linqを使用する必要があります。WPF/XML が使えません。非連続的なデータベース接続のシリアライゼーション トリックを行うため、データを複製して状態を管理すると、外部キー オブジェクトが失われます。ObjectListView は、表示と一般的な不正のために外部キー オブジェクトを必要とします。私はHibernateを知っていますが、Linqは私を途方に暮れさせます:
フレームワークとアプリケーション固有のクラスを結合せずに、RecordDetail へのダイアログが閉じた後、Record 内から外部キー オブジェクトにアクセスするにはどうすればよいですか?
あれは、
Type rowType = row.GetType();
IDomain workDamnit = (IDomain)dataContextReflectedFromRowType.GetTable(rowType).Where(x => x.PrimaryKey == 1).SingleOrDefault();
ここで、「PrimaryKey」は主キー属性をラップし、「GetTable」、「Where」、および「SingleOrDefault」の間で失敗が発生します。
この晴れた日曜日の朝に、あらゆる視点が高く評価されました。