2

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

这在灯开关中可行吗?

问候

4

1 回答 1

3

以下是如何执行此操作:

  1. 在 LightSwitch 设计器中打开要限制删除操作的实体
  2. 使用Write Code下拉菜单,创建一个 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 在实体集级别运行,并且无法访问将被删除的单个实体。

于 2011-08-05T05:44:43.023 回答