LightSwitch - 业务规则

时间:2011-08-03 14:07:24

标签: visual-studio-lightswitch

我在LightSwitch中有一个主/细节屏幕。我允许用户删除详细信息的项目。但是,允许用户删除除一个以外的所有内容。换句话说,只需要存在一个细节项目。

这在灯光开关中是否可行?

此致

1 个答案:

答案 0 :(得分:3)

以下是如何执行此操作:

  1. 在LightSwitch设计器中打开要限制删除操作的实体
  2. 使用编写代码下拉列表,创建Entity_Deleting事件
  3. 在删除事件中,检查主实体的详细信息项数。如果为0则丢弃更改。
  4. 以下是如何编码。在此示例中,主实体是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在实体集级别运行,并且无法访问将被删除的单个实体。