問題タブ [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.
ruby-on-rails - サブクラスの熱心な読み込み関連
次の(簡略化された)クラス階層があります。
すべての親オブジェクトを取得し、それらが子オブジェクトの場合は、:other 関連付けを積極的にロードさせたいと考えています。だから私はできることを望んでいました:
しかし、恐れていたとおり、「'other' という名前の関連付けが見つかりませんでした。スペルを間違えたのでしょうか?」というメッセージが表示されます。
このシナリオで熱心な読み込みを確立する最善の方法は何ですか?
[編集] リクエストに応じて、より具体的な例を次に示します。
- 親 = イベント
- 子 = PostEvent
- その他=ポスト
上記の例のように、さまざまな種類のイベントをすべて独自のプロパティ (一部は他のオブジェクトへの参照) と共にログに記録したいと考えています。同時に、発生したすべてのイベントをリストできるようにしたいので、親クラスです。
ruby-on-rails - Rails Eager Loading Question Find(:all, :include => [:model])
トピックとプロジェクト モデルがあります。それらの間に多対多のお尻があります(HABTM 1)。
トピックのインデックス ページに、各トピックのプロジェクト数を表示したいと考えています。ので、私は持っています
私のコントローラーでは、これまでのところとても良いです。問題は、プロジェクト モデルが非常に大きいため、クエリがまだ非常に遅いことです。
* を選択せずに名前または ID だけを選択するように 2 番目のクエリを作成する方法はありますか? counter_cache は HABTM Ass でサポートされていないため、自分で実装したくありません...この 2 番目のクエリを高速化する方法はありますか?
プロジェクトオブジェクト全体をロードせずにカウントを取得するだけです...
前もって感謝します、
ニコラス・ホック・イサザ
c# - NHibernate でツリーを熱心にロードする
ツリーをロードしようとすると問題が発生します。これが私の場合です。n レベルのエンティティ (階層型) が関連付けられています。問題は、ICriteria または HQL を使用してツリー全体を積極的にロードできるかどうかです。
助けてくれてありがとう。アリエル
entity-framework - WCF Ria Services/Linq2SQLDomainModelで負荷を熱心に処理する方法
ビュー(XAML)にデータバインドされたグリッドがあり、ItemsourceがReportsCollectionを指しています。Reportsエンティティには、3つのプリミティブといくつかの複合型があります。これらの3つは、datagridで期待どおりに表示されます。さらに、ReportsエンティティにはStoreタイプのプロパティがあります。GetReportsドメインメソッドを介してレポートをロードすると、プリミティブのみが返され、ある程度の深さのグラフ全体は返されないことがすぐにわかります。したがって、Storeプロパティもロードしたかったので、ドメインサービスで次の変更を行いました。
すぐに表示されるウィンドウから、ストアは期待どおりにロードされますが、クライアントに返されると、引き続きプルーニングされます。これはどのように修正できますか?
ありがとうございました!
.net - この Entity Framework コードの IObjectSet オブジェクトで、Include(..) メソッドが見つからないのは何ですか?
いくつかの子エンティティを熱心にロードしようとしていますが、Include() メソッドを追加しようとすると、コンパイラ エラーが発生します (つまり、見つかりません)。
代替テキスト http://img297.imageshack.us/img297/5638/whatthec.png
ええと...誰かこれについて私を助けてくれませんか?
entity-framework - 継承されたエンティティでの Include() の使用
EF では、関連するエンティティを積極的に読み込むのは簡単です。
しかし、table-per-type モデルを使用してデータをロードするときに、継承されたエンティティを含めることが困難です。
これは私のモデルです:
エンティティ:
ArticleBase
(基本物品エンティティ)ArticleSpecial
(から継承ArticleBase
)
UserBase
(ベース ユーザー エンティティ)UserSpecial
(から継承UserBase
)
Image
関係は画像に示されているとおりです (多くの列を省略しています)。
実際には、別のアプリケーションで使用されているUserSpecial
ため、私のユーザーは常にタイプであり、資格情報を共有できます。UserBase
それが、私が 2 つの別々のテーブルを持っている唯一の理由です。UserBase
他のアプリが壊れる可能性があるため、テーブルの形状を変更することはできません。
質問
両方が(関係を定義する) タイプになるように、ArticleSpecial
両方CreatedBy
とEditedBy
セットをロードするにはどうすればよいでしょうか?UserSpecial
Image
私は(失敗しましたが)これらのオプションを試しました:
1. ラムダ式の使用:
この場合の問題は、 と の両方CreatedBy
がEditedBy
に関連していて、ナビゲーションUserBase
を定義していないことです。したがって、これら2つを次のようImage
にキャストする必要があります。UserSpecial
もちろん、ジェネリックを使用しても機能しInclude("UserCreated<UserSpecial>.Image")
ません。
2. LINQ クエリを使用してみました
この場合ArticleSpecial
、関連するプロパティが設定されていないオブジェクト インスタンスのみを取得しています。どういうわけかそれらを選択する必要があることは知っていますが、方法がわかりませんか?
私のLINQの選択部分は、次のように変更できます
しかし、画像はまだ私のコンテキストにロードされていません。この場合の私のジョインは、articleSpecial の結果を除外するためにほとんど使用されていませんが、エンティティをコンテキストにロードしません (私はそう思います)。
java - HIbernate FetchMode Join
私は子のリストを持つ親クラスを持っています。名前など、ID 以外の何かで親をロードしたいと思います...私は、親のすべてのデータを一意の名前で熱心にロードするために使用criteria.setFetchMode("children",FetchMode.JOIN);
しています。criteria.add(Restrictions.eq("name", name))
問題は、何千もの結果がすべて同じ名前で返されることです...どうすればこれを回避できますか。
ruby-on-rails - Ruby on Rails:条件のあるアソシエーションを熱心にロードしたら、データベースに再度アクセスすることなく、どのようにしてそれを取得できますか?
次のような単純なケースを想像してみてください。
私のコントローラーで次のようなことをしたとしましょう。
ここで、チャプターを表示したいとします。データベースに再度アクセスせずに、Railsのチャプターに対処するにはどうすればよいですか?私がこのようなことをした場合:
Railsは、すべてのチャプターのデータベースを再ヒットして、それらをスキャンできるようにします。さらに悪いことに、コントローラーコードですべてのチャプターを再度スキャンする必要がありますか?
そして、次のようなfindを使用するもののようです。
チャプターがすでにキャッシュされている場合でも、データベースが再度ヒットします。
ruby-on-rails - Ruby on Rails: サブモデルとのポリモーフィックな関連付けに :include
ポリモーフィック アソシエーションを使用する場合、一部の型にのみ存在するサブモデルに対してインクルードを実行できますか?
例:
ビューでは、次のようなことをしたいと思います:
したがって、c をロードするときに有効期限を熱心にロードしたいと思います。そうする方法はありますか?囲まれたすべてのタイプにサブモデルの有効期限があるわけではないため、通常の :include を定義するだけでエラーが発生します。