[解決済み] 第二階層に複数のリファレンスを含める
2022-08-15 08:43:47
質問
このようなモデルがあるとします。
public class Tiers
{
public List<Contact> Contacts { get; set; }
}
と
public class Contact
{
public int Id { get; set; }
public Tiers Tiers { get; set; }
public Titre Titre { get; set; }
public TypeContact TypeContact { get; set; }
public Langue Langue { get; set; }
public Fonction Fonction { get; set; }
public Service Service { get; set; }
public StatutMail StatutMail { get; set; }
}
EF7では、Tiersテーブルからすべてのデータを取得し、Contactテーブルから、Titreテーブルから、TypeContactテーブルから...と、1つの命令でデータを取得したいと思います。Include/ThenInclude APIを使えば、次のようなことが書けます。
_dbSet
.Include(tiers => tiers.Contacts)
.ThenInclude(contact => contact.Titre)
.ToList();
しかし、Titreプロパティの後に、TypeContact、Language、Fonctionなどの他の参照をインクルードすることができません... IncludeメソッドはTiersオブジェクトを提案し、ThenIncludeはTitreオブジェクトを提案しますが、Contactオブジェクトは提案しません。どうすれば、Contactのリストからすべてのリファレンスをインクルードできるのでしょうか?1つの命令でこれを達成することができますか?
どのように解決するのですか?
.ThenInclude()
のいずれかが連鎖し、最後の
.ThenInclude()
または最後の
.Include()
(のいずれか(より新しい方)を使用して、複数のレベルを取り込みます。同じレベルの複数の兄弟を取り込むには、単に別の
.Include()
チェーンを使用します。コードを正しくフォーマットすることで、可読性を劇的に向上させることができます。
_dbSet
.Include(tiers => tiers.Contacts).ThenInclude(contact => contact.Titre)
.Include(tiers => tiers.Contacts).ThenInclude(contact => contact.TypeContact)
.Include(tiers => tiers.Contacts).ThenInclude(contact => contact.Langue);
// etc.
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例