質問: 私のデータベースでは、ID値またはEnum値に依存しているいくつかのテーブル間にリレーションがあります。構造は次のとおりです。 **社員** * ID * 名前 * RoleEnum(CEO、リーダー、開発者) * 利点の仮想リスト **長所** * ID * 説明 **従業員の利点** * ID * AdvantagesID * EmployeeID(Nullable)* * RoleEnum(Nullable)* *)それらの1つだけが各行の値を持ちます EmployeeとAdvantagesの関係は、EmployeeIDとAdvantagesIDに基づく直接的な関係、またはRoleEnumに基づくことができます。 したがって、EFで従業員をロードするとき、利点の仮想リストが自動的に入力されるようにします。そして、この動作は、リレーションがEmployeeIDとAdvantagesIDに基づいている場合でも機能しますが、RoleEnumに基づく場合はもちろん動作しますそのままでは機能しませんが、その状況を処理するようにEFを構成することはできませんか?従業員が「CEO」の役割を持っている場合、EmployeeAdvantagesでの役割に基づいたすべての関係をロードしますか?
回答: それはあなたが別のことをよりよくリレーショナルモデル化の観点からである`Advantage`秒の`Employee`秒から`Advantage`秒の`Role`秒。 `RoleAdvantages`ような個別のテーブルを`RoleAdvantages`することをお勧めします。この方法では、従業員の役割に基づいて`Employee`と`RoleAdvantage`関係を作成し、その`Role` `Advantages`を自動的にロードできます。その後、両方のコレクションから`Advantage`を収集するだけです。