1

私はSilverlightアプリケーションに取り組んでいます。ユーザーが新しいオブジェクトを追加できるようにするビューがあります。このビューにバインドされたビューモデルには、そのオブジェクト タイプのコレクションがプロパティとして含まれています。ビューモデルのコンストラクターには、WCF サービスを呼び出してデータベースからデータを取得する GetData() などの関数があり、取得したリストをそのコレクションに追加します。

WCF サービスを介して新しいオブジェクトをデータベースに追加した後、メソッド GetData を再度呼び出してコレクションを更新する必要があります。これは、コレクションに最新のデータが必要であるためです。

何かを追加するたびに、テーブルからデータ全体を再度フェッチする必要があるため、このプロセスは少し遅くなります。データがますます大きくなり、データを取得するために複数のテーブルの結合が必要になると、さらに遅くなる可能性があります。

ビューモデルのコレクションに直接、データベースに追加するためにサービスに渡すオブジェクトを追加することを考えています。明らかに、このオブジェクトを呼び出したサービスがエラーを返さなかった場合にのみ、このオブジェクトをコレクションに追加して、DB に正常に追加されたことを確認します。このようにして、データベースから取得する必要なく、最新のデータをコレクションに含めることができます。

このアプローチの欠点、または失敗する可能性のあるシナリオを指摘できる人はいますか? また、この目標を達成するための他のより良い方法があれば提案してください。

4

1 に答える 1

0

多くの場合、save メソッドで保存されたオブジェクトを取得して返します。そうすれば、サービス/DB レイヤーがそれを変更した場合 (作成日、ID など)、変更を取得できます。また、更新したい場合は、「新しい」とは見なされません。

于 2013-04-01T19:43:56.370 に答える