問題タブ [eager-loading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
714 参照

c# - エンティティへのLinqのEagerLoad(Include)リクエストに条件を適用する

私はテーブル製品を持っています。製品は、1対多の関係でProductDescriptionに関連付けられています。ProductDescriptionには、製品ごとに複数の行を含めることができます。製品の説明に複数の翻訳がある場合は、複数の行があります。製品は言語と多対1の関係にあります。言語には、言語コード(en、esなど)とLanguageId(ProductDescriptionにもあります)があります。

ユーザーが商品をリクエストできるようにし、さらに特定の言語の説明のみを返すようにアプリケーションに指示したいと思います。

LinqtoEntitiesでこれを達成するのに時間がかかります。次のようなSQLを生成したい:

(AlternateCodeは言語コードのフィールド名です)

誰かがこれを行う方法を知っていますか?私が今残しているのは、すべての言語をプルダウンしてから、Linq to Objectsでそれらをフィルターで除外することです。これは、確かに理想的とは言えません。製品ごとの言語コードをループで取得することはできますが、これには複数のSQLラウンドトリップが必要になりますが、これも望ましくありません。

助けてくれてありがとう!

0 投票する
1 に答える
1657 参照

c# - エンティティへの Linq での Eager Loading と Projection の実行

これは、私が数日前に投稿した別の質問からのスピンオフであり、正常に回答されましたが、実際には私が抱えていた根本的な問題には触れていませんでしたが、元のクエリでは完全に表現できませんでした.

私はテーブル製品を持っています。Product は、1 対多の関係で ProductDescription に関連付けられています。ProductDescription には、製品ごとに複数の行を含めることができます。商品の説明に複数の翻訳がある場合は、複数の行になります。Product は Language と多対 1 の関係にあります。Language には、言語コード (en、es など) と LanguageId (ProductDescription にもあります) があります。

ユーザーが製品をリクエストできるようにし、さらに特定の言語でその製品の説明のみを返すようにアプリケーションに指示したいと考えています。

私が抱えている問題は、この質問の 3 番目の段落のタスクを達成するためにプロジェクションを使用する必要があることを理解していることです。このようなもの:

ただし、製品テーブルには約 15 個のプロパティがあり、言語部分だけでなく、結果セット用にロードする必要がある製品の他の 4 つの子テーブルもあります。これらのプロパティと子オブジェクトのすべてを手動で調べてマップする必要がないように、熱心な読み込みと投影を行う方法はありますか? 私のコードが今立っている場所は次のとおりです。

本当にいいです選択は必要ありません。ProductDescriptions をプロジェクションに変更したら、Select を追加すると、他のプロパティ/子が無料で入力されなくなります。

0 投票する
2 に答える
7428 参照

c# - すべての遅延読み込みを無効にするか、LINQ コンテキストの積極的な読み込みを強制します

現時点では約 200 項目のクエリを含むドキュメント ジェネレーターがありますが、完了すると 500 以上になる可能性があります。最近、一部のマッピングが遅延読み込みを示していることに気付きました。これは、生成されるドキュメントに基づいてこれらすべてのプロパティにアクセスする必要があるため、ドキュメント ジェネレータに問題をもたらします。

コンテキストに指定できることは承知してDataLoadOptionsいますが、これにより、ロードされる可能性のあるすべての列を明示的に指定する必要が生じます。すべてのデータ フェッチが 1 つのコンテキストで行われるため、これは 1000 の北です。

コンテキストの遅延読み込みを無効にする方法、または積極的な読み込みを明示的に有効にして遅延読み込みプロパティを無視する方法はありますか? おそらく、DB コンテキスト クラスを拡張し、何かをオーバーライドしますか?

0 投票する
1 に答える
182 参照

linq-to-sql - Linq2Sqlにエンティティを熱心にロードする

LoadWithおよびAssociateWithDataLoadOptionsを使用して、エンティティとその関連プロパティ(基本的な1対多)を熱心にロードしようとしています。ただし、生成されたSQLを確認したところ、LoadWithによって生成されたステートメントはすべて左外部結合であることがわかりました。

したがって、以下のコードは、関連するプロパティのデータをフェッチするために、すべての左外部結合を生成します。何故ですか?そして、代わりにLoadWithを取得して内部結合を生成する方法はありますか。単純な「Linq結合」でこれを実行できることはわかっていますが、LoadWith構文がいかにクリーンで単純であるかが気に入っています。前もって感謝します

0 投票する
3 に答える
781 参照

nhibernate - NHibernate - 取得戦略を動的に定義する

問題を説明させてください - タイトルでうまく定義できていることを願っていますが、確認したいと思います。

一連のオブジェクト (Foos など) を取得する linq クエリがあります。各 Foo は User への参照を保持します。各 User は Person への参照を保持します。

オブジェクト構造が示唆するように、データベースでは、Foo は多対 1 で User に関連付けられ、User は多対 1 で Person に関連付けられます。

クエリを実行すると、Foos に対して 1 つの SELECT が取得され、次にすべてのユーザーと People に対してそれぞれ SELECT が取得されます。明らかに、いくつかの結合を含む単一の SELECT を好むでしょう。

Foos が常に熱心にユーザーをフェッチすること、またはユーザーが常に熱心に Person をフェッチすることをマッピング構成で指定する必要は必ずしもありませんが、このインスタンスではそれを指定できるようにしたいと考えています。

それを行う方法はありますか?

ありがとう

デビッド

0 投票する
1 に答える
1982 参照

ruby-on-rails - ネストされたモデルの熱心な読み込みに関する問題

NewsArticle、Comment、User (as :author)、および Profile といういくつかのモデルがあります。

ご覧のとおり、コメントのdefault_scopeを使用して著者をプロファイルで熱心にロードしますが、残念ながら機能しません:(また、NewsArticleControllerを更新しようとしました

しかし、何も変わっていません:(

コメント付きの NewsArticle をレンダリングすると、データベースへの異常な負荷が発生します。最適化について教えてください。

PS:ビューは以下です

news_articles/show.html.haml

news_articles/_comment.html.haml

PPS: 皆さん、申し訳ありません。モデルの User と Profile が別の DB にあることをお知らせするのを忘れていました。

現在 - インクルード/ジョインが機能しない理由は明らかですが、アカウント データを使用して DB へのリクエストを最適化する方法をご存知でしょうか?

0 投票する
1 に答える
66 参照

nhibernate - 熱心にフェッチされたコレクションの境界

コレクションを積極的にフェッチするにはどうすればよいですか? 最初の N 個のアイテムだけですか?

このコードを使用すると機能しますが、それを達成するための「公式の方法」はありますか?

この場合、 の結果をバインドしています。Galleryこれはとにかく一意の結果ですが、 の結果をバインドしたいと考えていますPictures

0 投票する
4 に答える
11642 参照

entity-framework - Entity Framework - インクルード/一括読み込みと遅延読み込みの違いは何ですか?

私は Entity Framework に慣れようとしています。そのほとんどは単純明快に思えますが、Include メソッドを使用した熱心な読み込みとデフォルトの遅延読み込みの違いについて、私は少し混乱しています。どちらも関連エンティティをロードしているように見えるため、表面的には同じことをしているように見えます。私は何が欠けていますか?

0 投票する
2 に答える
2414 参照

ruby-on-rails - Railsのオブジェクトストアとしてmemcached

RailsアプリケーションでMemcachedをオブジェクトストアとして使用しており、ユーザーオブジェクトである検索結果をmemcachedに保存しています。

データをフェッチすると、Memcachedの未定義のクラス/モジュールエラーが発生します。私はこのブログでこの問題の解決策を見つけました

http://www.philsergi.com/2007/06/rails-memcached-undefinded-classmodule.html

これは、事前にモデルを事前にロードすることをお勧めします。この問題に対してより洗練された解決策があるかどうか、およびプリロード手法を使用することに欠点があるかどうかを知りたいです。

前もって感謝します

0 投票する
1 に答える
493 参照

nhibernate - Nhibernate - ページングと熱心な読み込みエンティティ

チームと従業員の 2 つのエンティティがあります。

熱心なチームを持つ従業員のリストを取得したい。リストはページングする必要があります。

なぜこれが機能しないのですか?

SQL の結果: