[解決済み] エンティティフレームワークのLinqクエリInclude()複数の子エンティティ
2022-04-20 01:13:31
質問
これは本当に要素的な質問かもしれませんが、3つのレベル(またはそれ以上)にまたがるクエリを書くときに、複数の子エンティティを含めるにはどのような方法がありますか?
例えば、4つのテーブルがあります。
Company
,
Employee
,
Employee_Car
と
Employee_Country
Company は Employee と 1:m の関係を持ちます。
Employee は Employee_Car および Employee_Country の両方と 1:m の関係を持っています。
4つのテーブルのデータをすべて返すクエリを書きたい場合、現在書いているのはこれです。
Company company = context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country")
.FirstOrDefault(c => c.Id == companyID);
もっとエレガントな方法があるはずだ! これは長ったらしい上に、恐ろしいSQLを生成します。
私はEF4をVS 2010で使用しています。
どのように解決するのですか?
使用方法 拡張メソッド . 置換 名前OfContext をオブジェクトコンテキストの名前に置き換えます。
public static class Extensions{
public static IQueryable<Company> CompleteCompanies(this NameOfContext context){
return context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country") ;
}
public static Company CompanyById(this NameOfContext context, int companyID){
return context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country")
.FirstOrDefault(c => c.Id == companyID) ;
}
}
すると、あなたのコードは次のようになります。
Company company =
context.CompleteCompanies().FirstOrDefault(c => c.Id == companyID);
//or if you want even more
Company company =
context.CompanyById(companyID);
関連
-
[解決済み] LINQ to Entities クエリでエンティティを構築できません。
-
[解決済み] 不変量名 'System.Data.SqlClient' を持つ ADO.NET プロバイダに対応する Entity Framework プロバイダが見つかりませんでした。
-
[解決済み] LINQで複数の "order by "を使用する
-
[解決済み] DataTableに対するLINQクエリ
-
[解決済み] Entity FrameworkとLINQ to SQLの比較
-
[解決済み] Entity Frameworkにおける最速の挿入方法
-
[解決済み] Entity Frameworkで生成されたSQLを表示するにはどうすればよいですか?
-
[解決済み] LINQ Orderby Descending Query(LINQ降順クエリ
-
[解決済み] Entity Framework - 複数レベルのプロパティを含める
-
[解決済み】Lambda式でOrderBy descending?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Lambda式でOrderBy descending?
-
[解決済み] エンティティフレームワークのLinqクエリInclude()複数の子エンティティ
-
[解決済み] LINQ-to-SQLとストアドプロシージャの比較?[クローズド]
-
[解決済み] LINQ を使用して、オブジェクトのリストから一意のプロパティのリストを取得するにはどうすればよいですか?
-
[解決済み] LINQを使用してデータをPivotすることは可能ですか?
-
[解決済み] Linqのgroup byのカウントを持つ
-
[解決済み] 指定された型メンバー 'Date' は LINQ to Entities でサポートされていません。イニシャライザ、エンティティ・メンバ、およびエンティティ・ナビゲーション・プロパティのみです。
-
[解決済み] EF LINQは、複数のネストされたエンティティを含む
-
[解決済み] LINQ: 区分された値
-
[解決済み] LINQ OrderByとThenByの比較