2

LightSwitchにマスター/詳細画面があります。ユーザーが詳細のアイテムを削除できるようにします。ただし、ユーザーは1つを除くすべてを削除できます。つまり、1つの詳細アイテムのみが存在する必要があります。

これはライトスイッチで実行できますか?

よろしく

4

1 に答える 1

3

これを行う方法は次のとおりです。

  1. LightSwitchデザイナで削除操作を制限するエンティティを開きます
  2. [コードの書き込み]ドロップダウンを使用して、Entity_Deletingイベントを作成します
  3. 削除イベントで、マスターエンティティの詳細アイテムの数を確認します。0の場合、変更を破棄します。

これをコーディングする方法は次のとおりです。この例では、マスターエンティティはAdAgreementであり、詳細エンティティはIssuesです。

partial void Issues_Deleting(Issue entity)
{
    if (entity.Details.EntityState == EntityState.Deleted 
            && entity.AdAgreement.Issues.Count() == 0)
    {
        entity.Details.DiscardChanges();
    }
}

残念ながら、Entity_CanDeleteイベントでこのチェックを実行することはできません。これにより、ユーザーエクスペリエンスが向上すると思います。問題は、CanDeleteがエンティティセットレベルで動作し、削除される個々のエンティティにアクセスできないことです。

于 2011-08-05T05:44:43.023 に答える