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

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

c# - インスタンスではなくタイプ別のNHibernateEvict

私は次のようなアプリケーションを移行しています:

私はこのようなことをしたくありません:

出来ますか?どのように?、ありがとう

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

nhibernate - nhibernateでSaveOrUpdateメソッドを使用するときに保存されたアイテムを見つける方法はありますか?

HibernateでSaveOrUpdateメソッドを使用するときに保存されたアイテムを見つける方法はありますか?基本的に、アイテムが更新されたばかりなのか、それとも実際に1つのセッション内に挿入されたのかを知る必要があります。

サンスク。

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

asp.net-mvc - NHibernate ISession:例外の後に何も永続化できません

NHibernateに問題がありISessionます。何か間違ったことをデータベースに永続化しようとすると(たとえば、XYZ列に重複キーを持つエンティティを保存する)、ロールバックしTransactionます。ISessionインスタンスはBROKEN/INVALID状態になり、その後はレコードが保持されません。毎回、NHibernat最初の問題について通知する別の例外がスローされます。

私はのようなISessionメソッドを使用しましFlush, Clear, Closeたが、私の問題は存在します。別のアプローチは、から別のISessionインスタンスを要求することですISessionFactoryが、これを使用すると、別の奇妙な問題が発生しますillegal attempt to associate a collection with two open sessions

別のインスタンスを再要求せずにISessionインスタンスを回復するにはどうすればよいISessionFactoryですか?

前もって感謝します :)

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

nhibernate - 適切なセッション(RavenDB / NHibernate)の廃棄-IoCおよびWebアプリ

HybridHttpOrLocalThreadStorageStructureMapを使用しており、ライフサイクルを使用してISessionを構成しました。新しいセッションが作成され、リクエストごとにコントローラーに挿入されます。

さて、私が持っている質問は処分についてです。さまざまなアプローチを紹介する記事をたくさん読みました。コントローラー、リポジトリ、httpモジュール、Application_EndRequest()ハンドラーで実行している人もいます。批評は、SRP違反から、「オブジェクトを作成する人がその処分に責任を持つべきである」までの範囲でした。

つまり、結論は次のとおりです。

  • 一般的なアプローチは、これらのセッションを手動で破棄することでした-なぜですか?特定のオブジェクトのライフサイクルを管理するようにコンテナを構成しました。それ(つまりIoC)が私のためにそれを管理するべきではありませんか?
  • 処分に利用できるオプションのうち、それをApplication_EndRequest()「最良の」方法で処理することはありますか?

たとえば、この記事では利用可能なアプローチの1つを詳しく説明していますが、記事自体は2。5年以上前のものです。おそらく、StructureMapの新しいバージョンでは、その実装のほとんどが廃止されていますか?

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

wcf - 工場は廃棄され、使用できなくなりました。Hibernate施設

Castle と wcf を使用してこの NHibernatefacility のことを理解しようと 3 日間試みてきましたが、本当にイライラしています。

十数個のエラーを解決した後、かなり明らかなエラーにたどり着きましたが、解決できません。

これは私の global.asax の Application_Start です

これは最初のリクエストで機能します。その後、このエラーが発生します。

工場は廃棄され、使用できなくなりました。オブジェクト名: 「これ」。

この行のユーザーリポジトリでエラーが発生しています

これはライフスタイルと関係があると感じています。複数の組み合わせを試しましたが、うまくいきませんでした。この時点で何をすべきかわかりません。私はすべての設備 (生活を楽にするはずの) を備えたこのキャッスルに乗り込みましたが、ドキュメントがないために非常に複雑です。これらすべてをまとめて実装するための降下ガイドを見つけることができませんでした.4歳ではないことは言うまでもありません.

助けてください!

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

nhibernate - テスト中にデータベースを偽装するための NHibernate Override ISession

私は、データベースを一周する 2000 以上の統合テストを持つプロジェクトに取り組んでいます。プロセスをスピードアップしたいので、データベースを偽造してみませんか。

ORM として Fluent NHibernate を使用しているため、おそらくこのような問題が発生しています。この概念は、NHibernate ではなく基本的な CRUD 操作を使用するプログラムに既に実装されています。

基本的に、CRUD操作では、オブジェクトをメモリに保存して、辞書リストと言います。これにより、テストのプロセスが高速化され、ビルド時間が短縮されることが期待されます。クールな要素は言うまでもありません。

2 つの個別のセッションを用意し、セッション ファクトリでどちらか一方を使用することを検討しましたが、あまり気にしない多くのメソッド/プロパティを実装する必要があります。

私はまた、クラスで自分自身を翻訳する go between を使用することを検討していますが、おそらく既存のコードの多くを変更する必要があります。回帰テストが大きな要因にならないように、プロジェクトの残りの部分への影響を可能な限り制限しようとしています。

誰かが持っている他の提案を教えてください!

ありがとう!

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

nhibernate - NHibernate ISession のキャッスル ウィンザー IoC との循環依存関係

ASP.NET MVC アプリで NHIbernate と共に IoC に Castle Windsor を使用しています。次のように登録するとうまく機能します(1つの例外を除く):

ChangeAuditInterceptor に IAccountSession サービスが注入され、これに NHibernate ISession が注入されていることを除いて、すべて問題ありません...これにより、次の循環依存例外が発生します。

コンポーネント 'Late bound NHibernate.ISession' を解決しようとしたときに、依存サイクルが検出されました。循環の結果となった解決ツリーは次のとおりです: コンポーネント 'Late bound NHibernate.ISession' は、コンポーネント 'Blah.Core.Services.AccountSession' の依存関係として解決されました コンポーネント 'Blah.Core.Infrastructure.Data.ChangeAuditInfoInterceptor' の依存関係として解決されましたコンポーネント 'Blah.Core.Infrastructure.Installers.SessionFactoryBuilder' の依存関係として解決されました コンポーネント '遅延バインド NHibernate.ISessionFactory' の依存関係として解決されました 解決されるルート コンポーネントであるコンポーネント '遅延バインド NHibernate.ISession' の依存関係として解決されました。

過去数年間、私は通常、この循環依存の問題を引き起こすことなく、IInterceptor でプランクを処理する NHibernateSessionManager を使用して実行してきました (Castle Windsor の UsingFactoryMethod 機能を使用する SessionFactoryBuilder の使用法とは対照的に)。

この循環依存を解決する方法について何か提案はありますか? 他の手段を介して AccountSession の ISession をハッキングし始めるまではありません (つまり、問題を回避し、結果として悪臭を放つプロパティ インジェクション)。AccountSession サービスの ISession インジェクションをプロパティ インジェクションに切り替えましたが、正常に動作しますが、暗黙的なコントラクトとコンストラクターの明示的なコントラクトが好きではありません。

...等。

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

c# - リクエストスコープの NInject、NHIbernate、および ISession

私は基本的に、多くの場所で見た例を使用していますが、それが適切に機能しているとは確信していません。

だから、私は次のものを持っています:

そして私のNinjectスタートアップでは

私のセッションプロバイダークラスは次のようになります

私を混乱させているのは、リクエストスコープで ISession を作成する必要があると述べているにもかかわらず、リクエストごとに CreateInstance メソッドを複数回ヒットし、複数のセッションを生成しているように見えることです。

たとえば、このコンストラクターを持つコントローラーがある場合:

次に、CreateInstance メソッドが 2 回呼び出されます (リポジトリのコンストラクターを追加して、ISession パラメーターを取得する必要があります)。

InRequestScope として持つことは、一度だけ呼び出されることを意味すると思いました。私の誤解ですか、それともどこかでコードが抜けていますか。