問題タブ [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.

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

linq - オブジェクトへのリンクエラー:インデックスが範囲外でした。負ではなく、コレクションのサイズよりも小さい必要があります。パラメータ名:インデックス

linqクエリから新しいオブジェクトのリストを返そうとすると、次のエラーが発生します。選択ボックスで使用するために削除されたエンティティを返したいのですが、必要なのはIDと名前だけです。

インデックスが範囲外でした。負ではなく、コレクションのサイズよりも小さい必要があります。パラメータ名:インデックス

ここでどこが間違っているのかわかりません。

ヒントをいただければ幸いです。

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

linq - LINQとNHibernateおよび文字列の比較に関する奇妙な問題

LINQ to NHibernateを使用していますが、文字列の比較中に奇妙な問題が発生しました。次のコードは正常に機能しますが、コメントを外すと、// MyCompareFunc(dl.DamageNumber、damageNumberSearch)&&とコメント:dl.DamageNumber.Contains(damageNumberSearch)&&すると機能しなくなり、MyCompareFunc()はdl中に常にtrueを返すように見えます。 DamageNumber.Contains(damageNumberSearch)は、trueを返す場合と、falseを返す場合があります。

つまり、LINQクエリでstring.Contains()を直接使用すると機能しますが、メソッドに移動すると機能しません。

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

linq - LINQクエリでメソッドを使用しない必要がありますか?

次のコードでは、「dl.DamageCount> 5」をクエリに直接入れた場合と、「dl.DamageCount> 5」をメソッドまたは関数に移動してクエリから呼び出す場合との違いはありますか?

メソッドに移動すると、クエリが正しく機能しないようです。実際、関数/メソッドは、条件の評価に関係なく常にtrueを返すようです。Linq-to-NHibernateを使用しています。

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

c# - ブール式を評価する際の通常の法則がLINQに適合しないのはなぜですか?

このようなコードでは:

どこinsuranceNumberSearchが null で、残りの式は次のコードでは null ではありません:

式のすべてのセクションは、insuranceNumberSearch が null であるか、null でないかに関係なく評価されます。

LINQ to NHibernate を使用しています

アップデート:

残念ながら、最初のスニペットを間違えました。正しいのは次のとおりです。

また

上記の when insuranceNumberSearchisの両方でnull、残りの式はそれ以上評価されません。そのような動作が存在しない場合はinsuranceNumberSearch.Trim()参照オブジェクトが null例外になります。悲しいことに、LINQ (あるいは LINQ-to-NHibernate) は、このような優れた動作に従わず、すべての式を評価し、結果がエラーになる場合でもそうしませinsuranceNumberSearchnull

更新 2:同様の質問を見つけました: The || (または) C# を使用した Linq の演算子

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

c# - 短絡評価と LINQ-to-NHibernate

whereLINQ-to-NHibernate および LINQ-to-SQL は、クエリの句での短絡評価をサポートしていないようです。

私は正しいですか?回避策はありますか?LINQ-to-NHibernate と LINQ-to-SQL の次のバージョンに追加できますか?

詳細については、以下を参照してください。

|| (または) C# を使用した Linq の演算子

ブール式を評価する際の通常の法則がLINQに適合しないのはなぜですか?

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

nhibernate - Is linq2nh ready for production?

It is asked before but that was one year back. I would like to know if it is ready for production now?

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

c# - NHibernate Subquery Linq - 特定のアイテムを含むグループを ID で選択する方法

短いバージョン このクエリはデータベースで機能しますが、Linq To NHibernate では失敗します。なんで?

詳細ロングバージョン

ManyToMany 関係を持つ NHibernate Automapper によってマップされた 2 つのオブジェクトがあります。

特定の DataInfo を含むすべての DataGroup を取得したいと考えています。

このクエリは SQLite 管理で機能するため、データベースは適切にセットアップされていると思います。

この2つの方法でLinqを公開するリポジトリです

私はこのようなリポジトリを使用します

Linq が上記を実行しようとすると、いずれかの方法で次のエラーが発生します。

NHibernate.QueryException はユーザー コードによって処理され
ませんでした Message="プロパティを解決できませんでした: data.Id of: MapLarge.Public.Data.DataGroupInfo
"

私は何を間違っていますか?

- - アップデート - - -

この回避策により、期待される結果が得られますが、すべてのデータグループをメモリにプルし、データベースではなく c# を使用してオブジェクトをフィルタリングするブルート フォース アプローチですが、少なくとも私の問題を NHibernate 固有の問題に絞り込みます。

誰かがそこにいるなら、私はまだ本当に答えが大好きです:-)

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

nhibernate - NHibernate.Linq でネストされた選択が機能しない

次のクエリを使用して、ユーザーとそのロールのリストを読み込みます。

しかし、このクエリは機能していません。次のエラーを生成します:「メソッド 'Select' は実装されていません。」

メッセージは、NHibernate.Linq がネストされた選択をサポートしていないことを示唆していますか? これが確実かどうか、またはこれを行う他の方法が存在するかどうかを知りたいですか?

PD: 下手な英語をお許しください。

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

c# - LINQtoNHibernateクエリでToStringを使用するArgumentOutOfRangeException

基本的なNHibernate.Linqクエリがあります:

これは正常に機能します。ただし、ObjectTypeは重量のあるクラスであり、IDとClassNameのみが必要です。だから私はEntityInfo:と呼ばれるDTOを作成しました

そして、私は返したいIEnumerable<EntityInfo>

ただし、返されたIEnumerableを反復処理しようとすると、次の例外が発生します。

ToString()selectステートメント内で許可されていませんか?EntityInfo元のクエリを実行し、匿名タイプをインスタンスに手動でマッピングして新しい列挙型を作成することで回避できましたが、明らかに以前のバージョンの方が望ましいです。

参考までに、NHibernate.Linq 1.0.0.4000、NHibernate 2.1.0.4000、およびFluentNHibernate1.0.0.593を使用しています。

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

nhibernate - 基本的なFluentNHibernateプログラムはコンパイルおよび実行されますが、データベースに保存またはデータベースからロードされるものはありません。

私は非常に単純なFluentNhibernateの例を試しています。1つのテーブルを持つSQL2005データベース、VS2008コンソールアプリケーションです。プログラムが開始する前に、テーブルには1つのレコードがあります。

1つのレコードを追加してから、テーブルのすべてのレコードを表示しようとしています。プログラムは例外なく正常にコンパイルおよび実行されますが、レコードは表示されません。HBMマッピングファイルも作成されません。プログラムはデータベースを完全に無視しているようです(データベースに接続していますが)。

これが私のコードです-私はそれを最小限に抑えようとしました:

実在物:

マッピング:

プログラム自体: