0

最初に EF4 コードを使用してツリーを埋め、ユーザーがレポートをフォルダーに整理できるようにします。私のモデルは、既存のデータベース上に構築されているため、あまり単純ではありません。モデル内の 2 つのクラス (階層ごとのテーブル) にマップされた 1 つのデータベース テーブルがあり、別のクラスから継承します。

  • 基本クラス : 組織
  • 継承クラス: Organization_Report
  • 継承クラス: Organization_Folder

フォルダーには、Organization インスタンスのコレクションである Children プロパティがあります。Organization クラスには、NumParent メンバーと Navigation Property : Parent フォルダーを指す Parent があります。

最上位の要素には、NumParent = null があります。

親を持たないレポート (NumParent = null) を「仮想」(つまり、永続化されていない) フォルダーにグループ化する必要があります:「整理されていない要素」。

つまり、データベースにクエリを実行するときは、「整理されていない要素」フォルダーを作成し、NumParent = Nothing を持つすべてのレポートに対して Parent をそのフォルダーに設定する必要があります。データベースに保存するとき、このフォルダを追加しないでほしい。

それは EF で可能ですか?

4

1 に答える 1

1

EF とは関係ありません。アプリケーション ロジックです。EF は、データをロードまたは永続化する単なるツールです。追加のものが必要な場合は、自分で実装する必要があります。この場合ObjectContext.ObjectMaterialized、ダミー フォルダーをロードされたエンティティに割り当てるハンドラーを実装し、変更を永続化する前にそのダミー フォルダーを削除するObjectContext.SaveChangesハンドラーをオーバーライドまたは実装ObjectContext.SavingChangesする必要があります。オブジェクト ツリーを修正して、ダミーフォルダーへの参照ではありません。それ以外の場合は永続化されます。また、変更を永続化した後は、データにその特別なフォルダーが含まれないことも意味します。

DbContext API を使用する場合でも、コンテキストを ObjectContext に変換してハンドラーを割り当てることができます。

于 2012-04-23T09:55:11.790 に答える