問題タブ [linq-to-nhibernate]
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.
c# - NHibernateでの子および子の子コレクションの積極的な読み込み
NHibernateが小さな階層のデータを読み込もうとして問題が発生しました。私のドメインモデルは次のようになります。
そして、私は与えられた祖父母のためにすべての親と子供を熱心にロードしたいと思います。このLinq-to-NHクエリは、正しいSQLを作成し、GrandParentを期待どおりにロードします(この例では、祖父母に2つの親があり、それぞれに2つの子オブジェクトがあると想定しています。つまり、合計4つの子オブジェクトです)。
grandparent.Parentsコレクションには4つのアイテムが含まれており、そのうち2つは重複しています。DistinctRootEntityResultTransformerは1レベルの深さのコレクションでのみ機能するようです。したがって、Parentsコレクションは、各親が持つ子オブジェクトの数に応じて複製されます。
NHに個別の親オブジェクトのみを含めることは可能ですか?
どうもありがとう。
linq - Linq to NHibernate を使用して「Unhandled Expression Type: 1004」を受け取った人はいますか?
Linq2NHibernate が解析して入力済みのエンティティを返す NHibernate に渡される linq クエリがあります。
面倒なところはx => x.Employees.Select(y => y.FirstName).Contains(firstName)
これが行うべきことは、Ryan という名前の従業員がいる店舗を選択することです。
上記の行に「 Unhandled Expression Type: 1004」というエラーが表示されます
それはLinq2NHibernateの制限であり、.Select().Contains()
解析できないようです。
何か案は?他の誰かがこのエラーを受け取ったことがありますか? 修正または回避するにはどうすればよいですか?
[編集]
これが私が代わりに使用した最終的なものです。
Linq クエリはx => x.Employees.Any(y => y.FirstName == firstName)
nhibernate - NHibernate.Linq LockMode
NHibernate.Linq を使用するときに LockMode を設定することは可能ですか? ICriteria を使用する場合、次のようにできます。
Nhibernate.Linq を使用して同じクエリを作成することは可能ですか?
linq - 子エンティティと lazy="false" を使用した nhibernate クエリ
親を選択するときに、子コレクション内のすべての項目に対して個別の SQL クエリが生成されるという問題があります。
Child オブジェクトの IList コレクションを持つ Parent オブジェクトがあります。
linq を使用して次のコードを実行すると、休止状態になります。
次のようなSQLステートメントを取得します。
これは明らかに非常に非効率的で、マッピング ファイルと関係があると思いますか?
以下は、子コレクションのマッピングです。
これはどこかの初心者の間違いだと信じてください。
どんな助けでも大歓迎です。
S
nhibernate - Linq から Nhiberate - Where 節
これに対する答えを見つけようとしましたが、Googleで見つけることができませんでした。おそらく正しい用語を検索していないので、ここで質問すると思いました。
以下は、送信されたadjusterTypeに等しい連絡先ではなく、すべての連絡先を返します。
以下は、期待される結果を返します。AdjusterType を満たす連絡先のみを返します。LINQ に対する私の理解不足だと思います。
前もって感謝します。
nhibernate - n+1 の問題を選択
Foo にはタイトルがあります。
Bar は Foo を参照します。バーのコレクションがあります。
Foo.Title のコレクションが必要です。
コレクションに 10 本のバーがある場合、db を 10 回呼び出します。
bar.Select(x=>x.Foo.Title)
現時点では、これは (NHibernate Linq を使用していて、ドロップしたくありません) Bar コレクションを取得します。
私はこれについてアイエンデが言っていることを読みました。
別の関連する質問。
ちょっとしたドキュメンテーション。
また、関連する別のブログ投稿.
多分これは助けることができますか?これ
はどうですか?
多分MultiQueryは私が必要とするものですか? :/
しかし、私はまだこれを適切な解決策で「コンパイル」できません。
n + 1を選択しないようにするには?
c# - FluentNHibernate RTM および NHibernate.Linq
Fluent NHibernate プレリリース v0.0.1.0 と NHibernate 2.1.0.4000 および NHibernate.Linq 1.0.0.0 を使用するシステムを稼働させました。
新しい Fluent NHibernate RTM dll を入れて、重大な変更に合わせてコードを修正しましたが、実装方法に応じていくつかの問題が発生しています。
1) NHibernate dll を FluentNHibernate で提供されているものに変更しないと、Fluent NHibernate が異なるバージョンの NHibernate をターゲットにしているというエラー メッセージが表示されますが、両方のバージョン番号は同じです。
例外メッセージは次のとおりです。参照アセンブリ 'NHibernate、バージョン = 2.0.1.4000、カルチャ = ニュートラル、PublicKeyToken = aa95f207798dfdb4'
2) NHibernate dll を FluentNHibernate RTM で提供されているものに変更すると、NHibernate.Linq を使用するクラスでアセンブリを解決しようとすると、プログラムが中断します。また、同じアセンブリの依存バージョン間で見つかった競合についても不平を言います。
NHibernate.Linq 1.0.0.0 が Fluent NHibernate で使用できない場合、それで問題ありません。私はそれを回避する方法を見つけますが、誰かが一緒にうまくプレイする方法を見つけた場合、そしてなぜ明らかに 2 つあるのか興味があります。同じバージョン番号を持つ NHibernate の異なるバージョン。
ありがとう、
linq - Linq To NHibernate:複数のプロパティで.StartsWith
次のクエリを実行しようとしています(.StartsWithに注意してください)。
これはスローします:プロパティを解決できませんでした:Firstname.Lastname。
私がこれを行う場合:
すべてが機能しています。どうすればいいの?
前もって感謝します!
nhibernate - LINQで日付別にグループ化してNHibernateに
NHibernateのLINQ実装でサポートされていない機能の問題に直面しています(QueryException
: "プロパティを解決できませんでした:CreatedOn.Date of:Example.Comment")。
以下のエンティティを前提として、1日あたりのコメントをグループ化し、1日あたりのコメントの量を合計して統計を抽出したいと思います(当然、Fluent NHibernateで記述された追加のプロパティと正しいマッピングがあります):
私のLINQクエリは次のようになります(LINQ to SQLコンテキストに対して実行された場合、クエリは正常に機能します)。
適切な解決策は、プロジェクトに貢献し、この問題を修正することです。
一方、(LINQ to)NHibernateに、この動作を注入できる拡張ポイントがあるかどうかを確認したいと思います。カスタムタイプを作成し、2番目のプロパティを作成時刻の日付部分にマッピングできることはわかっていますが、これはクエリに変換されないため、速度が遅くなりすぎると思います。
クエリを書き換えるアクセスは制限されています。クエリはLINQtoSQLで動作する必要があるため、HQLを使用できません。
nhibernate - NHibernate LINQ の空の結果セットを処理するには?
ログインしているユーザーのロールのリストを取得したいと考えています。
以下は、データベースからユーザー ロールを読み取るコード セグメントです。
AppUser: ユーザー エンティティ Role: ロール エンティティ。ユーザー ID 1 のデータベースにはデータがないため、何も返されません。
戻り型データは NHibernate.Linq.Query で、null ではありません。
ToList(); に変換しようとすると、次のエラーがスローされます。
「インデックスが範囲外でした。負ではなく、コレクションのサイズ未満である必要があります。パラメーター名: インデックス」
空の結果セットを処理するにはどうすればよいですか?