私は BreezeJS を初めて使用します。SQL ストアド プロシージャで Breeze を使用する方法の例があるかどうか知りたいですか?
かなり複雑なクエリがいくつかあり、SP を介してそれらを呼び出せるようにしたいと考えています。また、SP から返された列がキーであることを Breeze にどのように伝えることができますか? ビューを使用する必要はありません。SP クエリを呼び出すたびに変数を渡す必要があるからです。
ありがとう。
ボブ
私は BreezeJS を初めて使用します。SQL ストアド プロシージャで Breeze を使用する方法の例があるかどうか知りたいですか?
かなり複雑なクエリがいくつかあり、SP を介してそれらを呼び出せるようにしたいと考えています。また、SP から返された列がキーであることを Breeze にどのように伝えることができますか? ビューを使用する必要はありません。SP クエリを呼び出すたびに変数を渡す必要があるからです。
ありがとう。
ボブ
基本的な考え方は、Breeze のEntityQuery.withParametersメソッドを使用して、ストアド プロシージャを呼び出して IEnumerable を返すサーバー側メソッドにパラメーターを渡すことです。(つまり、ストアド プロシージャの結果)。
この結果を Breeze エンティティのコレクションとして扱いたい場合は、Breeze がメタデータから認識している既存のエンティティ タイプに結果を整形するか、必要な形状に一致するクライアントに新しい EntityType を手動で作成して追加する必要があります。戻る。
EntityQuery.toTypeメソッドを調べて、breeze に返されたデータを特定の EntityType に変換させるか、代わりに「jsonResultsAdapter」を使用して同じことを行うことができます。
クエリから返され、Breeze EntityType に変換されるデータは、使用中の「modelLibrary」(Knockout、Angular、Backbone など) に従って自動的にラップされます。
Breeze が返されたデータからエンティティを構築できない場合でも返されますが、結果をラップする特別な処理は行われません。
お役に立てれば!
ここでは実際の答えではなく、いくつかの考えです。withParametersを使用してストアド プロシージャを使用して任意の形状のデータを返す (viewmodel を読み取る)機能は、dapper.net のようなものと統合する優れた方法だと思います。上記のビューモデルを再送信すると、オーバーロードを使用してビューモデルから実際のエンティティを再構築し、変更を保存できます。私が持っている唯一の問題は、sprocを簡単かつ自動的に再実行し、データをクライアントに送り返す方法が必要だということです...これが他の誰かにとって意味があるかどうか、および/または誰かが行ったかどうかを知りたいですそれはもう。この種のシナリオでは、追跡を無効にする必要があると思いますそよ風によって提供される機能および/またはビューモデル a の部分 x、y、z を追加/削除/更新するときに、オブジェクト jx、 jy、jz (javascript の場合は j) を送信し、必要に応じて保存します (上記で述べたこととは逆の考えです)。