例外 | 解説 |
---|---|
System.ArgumentException | 指定した activity の DataKey プロパティがnull参照(Visual Basic .NETではNothing)の場合にスローされます。データストアから削除する既存のアクティビティ行を特定するためには、nullでない DataKey を指定する必要があります。 |
System.ArgumentNullException | 指定した activity が null 参照(Visual Basic .NET では Nothing) の場合にスローされます。削除する DataKey を指定するためには、 Activity が null 以外である必要があります。 |
System.ComponentModel.WarningException | RemoveActivity を呼び出す前に、WebScheduleInfo プロパティが適切に初期化されていなかった場合にスローされます。RemoveActivity で指定した activity をデータストアに削除するためには、WebScheduleDataProviderBase がすでに activity と同じ WebScheduleInfo で初期化されている必要があります。 |
WebScheduleは、エンドユーザーがWebScheduleのユーザーインターフェイスの[Edit Appointment]ダイアログで〈Delete〉ボタンをクリックしたとき、その Activity の削除を自動的に処理します。アプリケーションで定義した基準に基づいて追加の削除を行うには、 RemoveActivity を呼び出します。この変更をデータ ストアにコミットするには、 ActivitiesCollection から Activity を削除するだけでは不十分です。このメソッドに削除する Activity を渡す必要があります。
RemoveActivity メソッドは、アプリケーションが WebSchedule データストアに対して実行する管理タスク (データベースのサイズを適切なサイズに維持するため、夜間バッチで EndDateTime が 1 年以上前の予定をすべて削除するなど) もサポートします。
指定した activity は、Resourceテーブル内の現在の行の識別に使用できる有効な DataKey を持つ必要があります。RemoveActivity は、 DataKey に基づいて Activity テーブルの行を削除します。指定した Activity インスタンスが Activity テーブル内で見つかった行とフィールド単位で一致するかどうかはチェックされません。アクティビティは永続的に削除され、通常の手段では復旧できなくなります(下記の注意 を参照)。
RemoveActivity は、データストアの Activity の削除のみを行います。ActivitiesCollection(またはその他のオブジェクト参照) には削除した Activity が有効なまま残るため、そのコピーを扱わないように注意する必要があります。最も安全な方法は、まずアプリケーションで使用しているコレクションから Activity インスタンスへの参照をすべて削除してから、そのインスタンスを RemoveActivity に渡してデータストアからの最終的な削除を行います。 こうすれば、その後でデータバインドフェッチ操作を実行しても削除されたインスタンスはコレクションに返されません。
ある Resource に関連付けられたすべてのアクティビティを削除しても、その Resource は無効にはなりません。デフォルトでは、この Resource は、別のアクティビティをスケジュール設定するために使用できます。孤立したリソースを削除する場合は、アプリケーションから RemoveResource を呼び出してクリーンアップを行います。
スケジュール管理アプリケーションはインダストリアルグレードのデータベース管理システム(ここではトランザクションログとバックアップの維持をサポートするもの)に配置することをお勧めします。そうすれば、適切なデータベース復旧計画と組み合わせることで、不注意で削除してしまったアクティビティの復旧に対処できます。どのようなオプションを使用できるかについては、データベース管理者に相談してください。