SilverlightのWCFデータサービスを使用して、1つのコマンドで永続オブジェクトグラフを削除することはできますか?私はこのウォークスルーから始めて、選択した注文を削除するためのコードを追加しました(詳細が含まれています):
private void deleteOrder_Click(object sender, RoutedEventArgs e)
{
Order deletedOrder = (Order)ordersGrid.SelectedItem;
// Delete the selected order.
svcContext.DeleteObject(deletedOrder);
// Remove the deleted order from the binding collection.
ordersGrid.SelectedIndex = ordersGrid.SelectedIndex == 0 ? 1 : ordersGrid.SelectedIndex - 1;
ordersBindingCollection.Remove(deletedOrder);
}
変更をサーバーに保存し直すと、削除要求が発行されます。
--batch_2009b119-0747-4019-8974-8ea7dd29963a コンテンツタイプ:マルチパート/混合; border = changeset_b451aecf-b66d-4f0f-8e6d-8a067646b350 --changeset_b451aecf-b66d-4f0f-8e6d-8a067646b350 コンテンツタイプ:application / http コンテンツ転送エンコーディング:バイナリ 削除http:// localhost:55378 / PurchasesService.svc / Orders(1)HTTP / 1.1 コンテンツID:90 --changeset_b451aecf-b66d-4f0f-8e6d-8a067646b350-- --batch_2009b119-0747-4019-8974-8ea7dd29963a--
ただし、データベース側では外部キー制約違反で失敗します。
--batchresponse_b6c22c24-17ec-409b-ba91-91784116927d コンテンツタイプ:マルチパート/混合; border = changesetresponse_41e6e873-a5dd-446d-bda0-99405ba92a63 --changesetresponse_41e6e873-a5dd-446d-bda0-99405ba92a63 コンテンツタイプ:application / http コンテンツ転送エンコーディング:バイナリ HTTP /1.1500内部サーバーエラー コンテンツID:90 キャッシュ制御:キャッシュなし DataServiceVersion:1.0; コンテンツタイプ:application / xml <?xml version = "1.0" encoding = "utf-8" Standal = "yes"?> <error xmlns = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> <コード></コード> <messagexml:lang="uk-UA">このリクエストの処理中にエラーが発生しました。</message> </エラー> --changesetresponse_41e6e873-a5dd-446d-bda0-99405ba92a63-- --batchresponse_b6c22c24-17ec-409b-ba91-91784116927d--
また、リレーションのOnDeleteプロパティを.edmxのCascadeに設定しようとしました
そのような削除を行うことは可能ですか?参照されているオブジェクト(クライアントまたはサーバー)の削除は誰が行う必要がありますか?また、サーバーに送信する必要のある削除要求の数:1つまたはN + 1(Nは特定の順序の詳細の数)。たぶん私はいくつかの重要なポイントを逃しています。オブジェクトグラフの削除について説明しているWCFデータサービスのチュートリアルはありますか?