問題タブ [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 投票する
7 に答える
6790 参照

repository-pattern - 積極的な読み込みとリポジトリパターン

リポジトリパターンを使用するときに、複雑なオブジェクトグラフの遅延読み込みの問題を適切に処理する方法を考えています。これは私が推測するORM固有の問題ではありません。

初挑戦:

これは問題なく機能しますが、常に自分自身を繰り返す必要があります(あらゆる場所のリポジトリ実装でカスタムの「With」メソッドを作成します)。

次のアプローチ:

Withメソッドは、必要なエンティティを取得するときにどの小道具を熱心にロードする必要があるかを見つけるために後で使用されるプライベートコレクションにアイテムを追加します。

この種はうまくいき、大丈夫です。しかし、私は使用法が嫌いです:

基本的に-問題は連鎖がないことです。私はそれをこのようにしたいと思います:

私はこれを達成できませんでした。できたとしても、そのソリューションがエレガントかどうかはわかりません。

これは、私が基本的な何かを見逃しているという考えにつながります(どこにも例がない)。これを処理するさまざまな方法はありますか?ベストプラクティスは何ですか?

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

c# - ObjectContext.CreateQuery (Entity Framework およびリポジトリ) を使用して関連エンティティ (Eager Load) を読み込む際に問題が発生する

ここに私が試したことの束があります...うまくいけば、私がやろうとしていることと私が間違っていることを推測できます。さて、この DoQuery を使用すると、関連するエンティティの読み込みに問題が発生します。

これをそのまま使用すると、関連するエンティティを除くすべての適切なパラメータを含むオブジェクトが返されます...つまり。1 つが User テーブルを参照する UserID である場合、User オブジェクトも返されません。

.Include("User") を実行してエンティティの Eager Load を実行できることを読みましたが、これを試しても機能しません。

また、エンティティ セット名とモデル名が「ユーザー」であることを確認しました。他に考えられる唯一のことは、に複数のものを入れること("[" + typeof(E).Name + "]")ですが、そこに複数のエンティティを含める方法がわかりません... . 間に。

しかし、それはうまくいきませんでした...

私が正しい軌道に乗っていない場合は、お知らせください。ObjectContext.CreateQuery を使用するときに関連エンティティを読み込む方法を知っている人はいますか? 提案や洞察が役立ちます。

ありがとう、
マット

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

entity-framework - Entity Frameworkでの積極的な読み込みの反対を行う方法は?

Entity Frameworkで、 Includeと結合する必要のある関係を指定できることを理解しています。

ただし、単純なLINQステートメントでSQLサーバー上でJOINがすぎるという反対の問題があります。

では、逆のことを行うにはどうすればよいでしょうか。つまり、すべての注文を取得したときに結合テーブルのディープロードを行わないようにエンティティに指示して、SQLServerで次のように実行します。

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

.net - Why is ToLookup() dependent on load options in Linq2Sql?

Lets say I have 3 tables Posts, PostTags and Tags defining a many-to-many relationship. I want to get a lookup table that will give me all the Posts related to a given tag so I use the following code:

In unit test all went fine but in the real application, it didn't work. I found out that I had different load options between my unit test and my application.

When dataContext.DeferredLoadingEnabled = true;, everything is fine and works as expected but when dataContext.DeferredLoadingEnabled = false; and you don't have the load options from PostTags to Post and Tag, the lookup returned contains a single key (null) with an empty array for value. The generated SQL is

So when it generates the lookup, pt => pt.Post returns null and the same goes for Tags.

Why can't the Linq2SQL provider generate the right SQL in that case?

Clarification: By the right SQL, any SQL that would return the right Post and Tag objects and allow for grouping them correctly.

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

.net - このコードで Eager Loading (.Include() メソッドを使用) を行うにはどうすればよいですか?

VS2010 Beta 2 に付属する Entity Framework v4 を使用して、私が遊んでいる非常に単純なリポジトリがあります。

ユーザーがオプションで要求した場合、Include メソッドを動的に含めようとしています。

例えば。

誰でも助けてもらえますか?

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

entity-framework - 追跡されたアイテムに熱心に読み込みますか?

いくつかのナビゲーションプロパティを公開するエンティティ(Contact)にバインドされた要素があります。

いくつかのアクション(つまり、[子の読み込み]ボタン)で、ObjectQuery.Includeを実行する前に実行できるように、連絡先がすべての子と孫に対して読み込まれる必要があります。例(疑似):

モデル自体をクエリするときだけでなく、上記の例のようにアイテムをリロードすることによっても結果を整形できるようにしたいと思います。

これは、何らかの形でEntity-Frameworkの一部である必要があると思います。

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

grails - Grails GORM ドメイン クラスの関係

Grails 1.1.1 グービー 1.5.7

このような関係では:

著者 1 -- n 本 n -- 1 出版社

Grails で定義:

Publisher と Author の値を含む Book をロードしたいと考えています。クエリで Book を取得すると:

autor が関連付けられた応答を取得しますが、発行者は他のクエリで id と name クラスしか持っていません。

逆の結果を取得します。出版社のデータを含む本がありますが、著者にはIDとクラス名しかありません。

定義されたモデルのどこにエラーがありますか? o クエリを実行する方法にエラーがありますか?

編集:

次のようなクエリでのみ値を取得する方法が必要です。

これで、出版社の価値を管理できます。

質問: 出版社に関連がある場合hasmanyDomain書籍を入手して属性を読み取ることができますか?

ありがとう。ありがとう。

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

ruby-on-rails - Rails ActiveRecord - has_many から 'build' を使用する場合の熱心な読み込み (一種)

子が構築されているが保存されておらず、親への参照とともにビューで使用されている状況があります。これにより、Rails のレコード キャッシングが広範に使用されます。保存されていない子レコードを親に「熱心にロード」したいと思います。

次に、ビューで(「子」はDBに保存されないことに注意してください):

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

linq-to-sql - Linq-To-Sql でツリーを効率的に選択する

2 つのテーブルを含む linq-to-sql データ レイヤーがあります。"親子"。子と親の間には関係があり (親には多くの子供がいるなど)、親も多くの親を持つことができます (子供が成長して自分自身が親になるとき)。

この階層をユーザーに表示したいのですが、これを効率的に行う方法がわかりません。

非効率的なアプローチは次のとおりです。

しかし、これはループ内の反復ごとに db 往復を 2 回生成します (eek!!)。大規模なファミリの場合、これは非常に高価になります。

より良い方法はありますか?(神よ、そう願っています!)

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

c# - APIでLazy/Delay-loadingからEager-loadingに変換する好ましい方法は?

私はしばらくの間 API (一種の Web サービスをラップする) に取り組んできましたが、その機能はほぼ完成しています。

私は当初、この API を全体的に遅延/遅延ロードするように設計しました。これは、Web サービスの使用に固有のレイテンシーを考慮して、利用可能なデータの小さなサブセットのみに関心がある場合に完全に理にかなっています。ただし、API のコンシューマーにとってイージー ロードがはるかに簡単になるいくつかのユース ケースを考慮していませんでした。

ですから、私の質問は次のとおりです。主に遅延読み込みである API が、クラスの熱心に読み込まれたバージョンを取得するためのメカニズムをどのように公開することを望みますか?

私はキャストに傾いていますが、より冗長であればexplicit、のラインに沿ったものも自然に見えます。Eager.AsEager(SomeDelayLoadingObject)