2011-08-03 10 views
2

LightSwitchにマスター/詳細画面があります。私は、ユーザーが詳細の項目を削除することを許可します。ただし、ユーザーは1つを除くすべてを削除することができます。言い換えれば、1つの詳細項目のみが存在する必要がある。LightSwitch - ビジネスルール

これはライトスイッチで実行可能ですか?

よろしく

答えて

3

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

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

これをコードする方法は次のとおりです。この例では、マスターエンティティはAdAgreementあり、そしてディテールエンティティは問題です:

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

は、残念ながら、あなたは私の意見では、あなたがより良いユーザー体験を与えるEntity_CanDeleteイベントでこのチェックを実行することはできません。問題は、CanDeleteがエンティティセットレベルで動作し、削除される個々のエンティティへのアクセスがないことです。

関連する問題