問題タブ [unit-of-work]
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.
design-patterns - Unit Of Work パターンの適用
エンタープライズ アプリケーション アーキテクチャのパターンで、作業単位は単一のセッションでのみ使用する必要があることを読みました。したがって、各セッションには唯一の作業単位が必要です。アプリケーション全体 (私の場合は ASP.NET) に対して 1 つの作業単位を使用できなかった理由を教えてください。
database - データベース外でトランザクション動作が必要になることはありますか?
トランザクションのないデータベースで複雑なことをするつもりはありません。ほとんどの場合、使いやすい組み込みコマンドがあります。しかし、他の永続データを扱うようになると、トランザクション サポートを簡単に使用することができなくなります。いくつかの例は
- ファイルシステム
- Web サービス (私が使用したものはありません)
非永続データであっても、例外に続いて作業ブロックを元に戻すと便利なことがよくあります。言語で得られる標準的なデータ構造はどれも、トランザクションをサポートしていません。
私が知りたいのは、なぜデータベースが特殊なケースなのですか?
データベース外のトランザクション動作のトピックへの有用なリンクはありますか?
asp.net-mvc - ASP.Net MVC に関する RhinoCommons UnitOfWork の質問
RhinoCommons と NHibernate をいじっていて、UnitOfWork パターンについて質問がありました。
これがn00bの質問である場合は申し訳ありません。
UnitOfWork は最上位レベル (つまり、コントローラー) で開始する必要がありますか? または、コントローラーが呼び出しているサービスモジュールで言いますか?
unit-of-work - 作業単位の質問
次のシナリオでは、作業単位パターンをどのように使用すればよいですか。
私はwinformsアプリを書いています。ユーザーが 1 つの注文を編集できる画面が 1 つあります。この画面で、ユーザーは別のフォームを開いて配送会社を選択できます。ユーザーは、選択を行う前に、この子フォームで既存の配送会社を追加/編集することもできます。
Unit of work パターンを使用してこのシナリオを実装するにはどうすればよいですか? 現在、注文入力画面の作業単位は 1 つです。私が最初に考えたのは、この作業単位にも子フォームを含めることでした。問題は、子フォームで配送会社の変更を永続化する必要があることです。しかし、配送会社の変更を永続化すると、注文の変更も永続化されます。
配送業者を編集するために 2 番目の作業単位を作成する必要がありますか? その場合、その作業単位の変更を最初の作業単位で表示するにはどうすればよいですか?
nhibernate - UnitOfWork の実装
おそらく私はこれを理解するにはあまりにも愚かですが、Gabriel Schenker http://nhibernate.info/doc/patternsandpractices/nhibernate-and-the-unit-of-work-pattern.html UnitOfWork 実装を読んでいて、本当に理解できませんポイントを取得します。
UnitOfWorkImplementor.Dispose が破棄を UnitOfWorkFactory に転送する必要があり、これが UnitOfWork に転送されるのはなぜですか? UnitOfWorkImplementor Dispose 自体ができないのはなぜですか?
他の UnitOfWork 実装例はありますか? (もっと簡単なものでお願いします)。
ありがとう!
linq - ドメイン モデル + LINQ to SQL のサンプル
ビジネス ロジック レイヤーのドメイン モデルとデータ マッパーの LINQ を使用して設計された、エンタープライズ アプリケーションのサンプルがあるのだろうか。LINQ to SQL の UnitOfWork 機能をビジネス レイヤーのビジネス オブジェクトと組み合わせて使用する方法がよくわかりません。
ありがとう、ルシアン
linq-to-sql - 作業単位としての LINQ to SQL
あなたの経験から、LINQ to SQL は作業単位として適切ですか? それは避けられますか?たとえば、NHibernate または別の O/RM ツールを使用する必要がありますか?
ありがとう、ルシアン
wcf - WCF でクライアントに例外を返すことができる最後の瞬間はいつですか?
IInstanceProvider の実装にこれがあるとしましょう:
そのスロー。サービスが作業を完了してデータをクライアントに返した後に呼び出されているため、クライアントに返されることはありません。他にどのように例外を返すことができますか? または、これを行うためのより良い場所はありますか?
repository - Rhino Commons UnitOfWork をいつフラッシュする必要がありますか?
Rhino Commons UnitOfWork (ASP-MVC の UnitOfWorkApplication 内) を使用する場合、Rhino リポジトリの静的クラスを使用して、次のようにエンティティを保存します。
次を使用して、その呼び出しの直後にエンティティを取得できることがわかりました。
これはうまくいきます。ただし、Rhino UnitOfWork で NHibernate Linq プロバイダーを次のように使用すると、次のようになります。
空のリストを取得します。このように車を出す前に、 UnitOfWork.Current.Flush() を呼び出す必要があるようです。舞台裏では、両方の取得方法が同じセッション/作業単位を照会していると想定しているため、理由がわかりません。これは、データベースに保存するたびに UnitOfWork.Current.Flush() を呼び出す必要があるということですか? NHibernate は自分自身をいつフラッシュするかを判断できるはずではありませんか? それとも私は何かを誤解していますか?
nhibernate - RhinoCommonsUnitOfWorkを使用した統合テスト用のネストされたトランザクションスコープ
各テストをトランザクションでラップする統合テストクラスを設定しようとしています。このようにして、各テストの前にDBをリセットする代わりに、各テストの後にトランザクションをロールバックできます。
また、統合テスト自体でトランザクションを使用できるようにしたいと思います。
プロジェクトにはNHibernateとRhinoCommonsUnitOfWorkを使用しています。テストにはMSTestを使用しています。
私はこのようなものが欲しい:
NHibernate、Rhino Commons、MSTestを使用したのはこれが初めてです。ネストされたRhinoCommonsを使用したセッションの動作がわかりませんUnitOfWork
。私がここに持っているのは、統合テストからの変更をロールバックしません。
TransactionScope
fromを使用してみましたが、 sが終了System.Transactions
すると次のエラーが発生します。UnitOfWork
System.InvalidOperationException:トランザクションの進行中は切断を呼び出すことができません。
だからここに私の質問があります:
Rhino CommonsのUnitOfWorkでこの動作を取得する方法はありますか?そうでない場合は、各テストの前にデータベースをリセットする必要がありますか、それともUnitOfWorkでうまく機能するトランザクションをネストする別の方法がありますか?
ありがとうございました。