問題タブ [isession]
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 で ReadOnly としてフェッチされたエンティティは PersistenceContext に存在します
NHibernate を ORM として使用するプロジェクトに取り組んでいます。
かなりの数のエンティティを「読み取り専用」としてセッションにロードできます。これは、エンティティを取得後に更新する必要がないためです。
私は2つの異なる方法でこれをやろうとしました:
また:
ただし、どちらの方法でも、エンティティがPersistenceContext
ISession に存在することがわかります。
これは正常ですか?エンティティは読み取り専用/不変であるため、PersistenceContext には存在しないはずです。エンティティ タイプは複合タイプです。他のタイプへの複数の関連付けがあります。
c# - NHibernate の ISession.QueryOver はイベントを発生させますか?
NHibernate のイベント システムについて知ったのはつい最近のことです。ドキュメントによると、
基本的に、ISession インターフェイスのすべてのメソッドはイベントに関連付けられています。
それでも、ISession.QueryOver().List() を使用してオブジェクトのリストをロードしたときに発生するイベントが見つかりません。このかなり一般的な操作には素敵なイベントが関連付けられていると思っていましたが、InitializeCollectionEvent、RefreshEvent、LoadEvent、およびその他のいくつかをテストしましたが、QueryOver() を呼び出したときにそれらのどれも起動しませんでした。私は行方不明ですか?
QueryOver() によって発生するイベントが本当にない場合、InitializeCollectionEvent を発生させる操作は何ですか? オブジェクトのリストがデータベースからロードされるたびに処理したいだけで、これが必要なイベントであると想定しています。
前もって感謝します!
c# - NHibernate は Entity Framework の DbSet のようなデバイスを必要としませんか?
私が集めたものから。これDbSet
は型指定されたエンティティ キャッシュであり、保存時に永続化が必要なエンティティをDbContext
すべてポーリングします。DbSets
NHibernate では、すべてのエンティティ タイプのキャッシングと変更検出が 1 つのISession
インスタンスに結合されます。
では、非常に単純な EF コードを NH コードに変換するにはDbSet
、セッションですべての操作を直接実行するだけで済みますか?
c# - タイプ「ISession」の式に [] を使用したインデックス付けを適用することはできません
このスニペットで問題が発生しますが、その理由はよくわかりません (コードはチュートリアルからのものです https://www.youtube.com/watch?v=b0CrSerID1A&list=PLjCTEYO9N-j0wMr_p9j92lfgbY4E9c_Ds&index=16