問題タブ [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.
castle-activerecord - Linqを使用してNhibernateの例を使用するCastleActiveRecord
私は長年ActiveRecordライブラリを使用しています。最近、私は新しいプロジェクトを開始し、このプロジェクトにAR2.0リリースを含めています。LinqtoNhibernateライブラリに同梱されているのを見ました。Linqを使用してActiveRecordライブラリでNhibernateを実行する方法の良い例はありますか?
linq-to-nhibernate - linqで変換されたSQLクエリをNHibernateにチェックする方法は?
私はLinqをNHibernateに使用しています。
私は次のテストケースを持っています:
また、CategoryRepositoryクラスに次のコードがあります。
私の質問は、linq to nhibernateステートメントが実行されると、実際に変換されたSQLクエリをチェックする方法は?何か方法はありますか?
SQLプロファイラーを使用できることはわかっていますが、テストケースでモックオブジェクトを使用したいので、データベース関連のメソッドで表示したくありません。
nhibernate - NHibernate: キャッシュを無視してデータベースに直接アクセスするにはどうすればよいですか?
典型的な NHibernate コンテキスト クラスを考えてみましょう。
私の質問:
- GetPerson メソッドを書き直してキャッシュを無視し、データベースから直接データを取得するにはどうすればよいでしょうか?
nhibernate - NHibernate Linq は暗黙のトランザクションを使用しますか?
ここで入手可能な Ayende の NHibernate Linq バージョン 2.1.2 を使用しており、NHProf を使用してこのメソッドを使用するクエリを検査する場合:
暗黙のトランザクションを使用しているという警告が表示されます。問題は、これをリポジトリで使用してデータベース セッションを抽象化していることですが、必要な Linq クエリを実行できるように IQueryable を返す柔軟性が必要です。を公開せずにトランザクションで明示的にラップする方法はありますSession.Linq<T>()
か、またはこの場合は警告を無視する必要がありますか?
もう少し背景。私は次のような方法を使用しています:
linq - LinqからNHibernateへ:成熟していますか?
今後のプロジェクトでLinqtoNHibernateを使用することを考えているので、フィードバックをお願いします。2月に同じ質問があったのですが、LinqからNHibernateまでは、現時点ではあまり成熟していないようです...それ以来、改善されていますか?誰かが実際のアプリケーションでそれを使用しましたか?
ご意見ありがとうございます
PS:重複して閉じないでください:既存の質問はほぼ1年前のものであり、製品の現在のステータスについて質問しています...
nhibernate - LinqからNHibernateおよびGroupBy
NHibernate(バージョン2.1)用の現在のLinqプロバイダーを使用しています。
私にはVideoGameとGameDeveloperの2つのエンティティがあり、それらの間には多対1の関係があります。私はこの種のクエリを実行しようとしています。これは、各ゲーム開発者が持っているビデオゲームの数をカウントします。
このクエリを列挙すると、「Entities.VideoGameのプロパティKeyを解決できませんでした」という例外が発生します。ここで、v.Developer.Idでグループ化すると機能しますが、[名前]列を選択して結果に表示することはできません。v.Developer.Nameでグループ化することもできますが、2人の開発者が同じ名前を持っている可能性があるため、正しくないようです。
現在のLinqプロバイダーはもう開発されていないことは知っていますが、状況についてアドバイスをいただければ幸いです。
nhibernate - 同じクエリでLinqを使用して、Nhibernateで親と子の数を選択します
簡単なブログ アプリケーションを作成して、MVC と nHibernate を学習しようとしています。
私は投稿テーブルとコメントテーブルを持っています。各投稿には複数のコメントを含めることができます。私の見解では、投稿の詳細とコメント数を表示する必要があります。
以下のコードを試しました
これにより、以下の SQL が返されます。
そして明らかにgroup by
使用されていないSQL例外をスローします。
c# - LINQ-NHibernate - 複雑なオブジェクトに対して少数のフィールド (コレクションを含む) のみを選択する
プロジェクトの 1 つ (および ASP.NET MVC アプリケーション) で Fluent NHibernate を使用しており、LINQ を使用してデータを照会しています (LINQ to NHibernate ライブラリを使用)。
罪のない人を守るためにオブジェクトの名前が変更されます。
次のクラス Foo、Bar、Baz、およびデータベース (MySQL) 内の適切なテーブルがあるとします。
Foo は、Fluent マッピングで定義されている Bar (テーブル "FooBar") と Baz (テーブル "FooBaz") の両方と多対多の関係にあります。そのため、クラス インターフェイスは次のように定義されます。
これはかなり標準的なクラスです。Foo オブジェクトがバーとベースのリストを持つことがわかります。
問題は、LINQ クエリを実行しようとしたときに発生します。
このような単純なクエリを実行すると、正常に動作します (where 句は重要ではありません)。
これにより、すべてのフィールド (id、name、email、bars、bazes) が入力された Foos のリストが返されます。log4net は、NHibernate がコレクションに対して個別のクエリを実行することを示しています。
一部のフィールドのみをロードしたい場合に問題が発生します。たとえば、クエリのバーのみをロードし、ベイズはロードしたくない場合があります。
このクエリはコンパイルされますが、実行時にエラーが発生します。
私が得るエラーは、範囲外の配列インデックスの行に沿ったものです。スタック トレースには、LINQ-NHibernate 側でのコレクション処理に関連するいくつかのメソッド名が示されていますが、それ以外は何も示されていません。log4net によって報告されたクエリには、バーに対するクエリの兆候は見られません。これは、バーを選択するためのクエリを実行する前にエラーが検出されたことを意味します。
他の誰かが以前にこの種の問題を抱えていましたか? どのように解決しましたか?アプリケーションで Web ページを開くたびにすべてのオブジェクトを選択する必要はありません。
ありがとうございました!
編集:リクエストされたスタックトレースは次のとおりです。
tsql - Linq To NHibernate Plus sql ユーザー定義関数
かなり大きな linq-to-nhibernate クエリがあります。ここで、パラメーターを渡す必要がある t-sql で記述されたユーザー定義関数に基づいてフィルターを追加する必要があります。私の場合、ユーザーが入力した zipcode を渡し、それを t-sql 関数に渡して、この zip からの距離でフィルター処理する必要があります。これは可能ですか、それとも ICriteria API を使用してクエリを書き直す必要がありますか?
nhibernate - NHibernate.Linq System.NullableはArgumentExceptionをスローし、値""はタイプではありません
タイプMetadataRecordのクラスがあります:
および一致するマッピングファイルは次のとおりです。
このクラスに対して単体テストを実行して、MetadataRecordのインスタンスからnull許容型のlongであるIntegerObjectに対して返される値を確認しています。NHibernate.Linq(v 1.1.0.1001)を使用して、次のようにクエリを実行しています。
対応するテーブルのINTEGER_OBJECT列はNULL可能であり、IsNullがtrueまたはfalseであると予想します。ただし、次のエラーが発生します。
テストメソッドActiveMediaMetadataViewerTestProject.MetadataRecordTest.IntegerObjectTestが例外をスローしました:NHibernate.Exceptions.GenericADOException:find [SQL:SQL not available] ---> System.ArgumentException:値""はタイプ"System.Nullable`1[ではありませんSystem.Int64] "であり、この汎用コレクションでは使用できません。パラメータ名:値。
I can't figure out why it's trying to cast a string to a nullable type. Is there another way in which I should be opening the session, decorating the class, even constructing the mapping file, ..... where am I going wrong here? I could resort to using Criteria, but I was much enjoying the intellisense and "refactorability" with Linq.