1

現在設計しているアプリケーションには、次のレイヤーがあります。

MSSQL < NHibernate < リポジトリ < WCF < Javascript

ホスティング Web ページ (EditOrder.aspx?id=104) のロード時に、JavaScript アプリケーションは WCF サービスを呼び出して、ID によって注文を取得します。ユーザーは UI を使用して、Order のプロパティを変更し、子 OrderLine を追加/変更/削除できます (注文には OrderLine のコレクションがあります)。

ユーザーが [保存] ボタンを押すと、javascript アプリケーションは Order with と OrderLine オブジェクトの配列を JSON として WCF サービスに送信します。

計画では、WCF サービスで AutoMapper を使用してドメイン オブジェクトと DTO をマッピングする予定です。ブラウザーによってポストされた DTO が WCF サービスによって受信されると、対応する Order ドメイン オブジェクト (その子 OrderLines を含む) にマップされます。

次に、リポジトリに渡されます。

ここで私の質問: NHibernate に注文の更新を依頼したときに、削除/挿入/変更された OrderLineItem の識別を処理させることは可能ですか? もしそうなら、これを機能させるには何が関係していますか?

更新: これは NHibernate Merge() メソッドが行うことですか?

ありがとう!

4

1 に答える 1

0

いいえ。回避しなければならない問題は、注文と注文明細で参照する静的データです。したがって、オーダーラインが静的な製品データを参照している場合は、ドメイン オーダーラインを組み立てて、dto から新しいオーダーラインを構築する必要があります。Dto は、外部の世界に対する Web サービスの境界であり、通常はビジネス ドメイン モデルよりもフラットなモデルです。dto が通信される境界は、アプリケーション レイヤーまたはブラウザーの json です。

于 2011-12-26T20:38:44.290 に答える