2011-08-03 221 views
2

我在LightSwitch中有主/明細屏幕。我允許用戶刪除細節的項目。但是,用戶可以刪除除一個之外的所有人。換句話說,只有一個細節項目需要存在。LightSwitch - 業務規則

這是可以在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在實體集合級別運行,並且沒有訪問將被刪除的個體實體。