Вот как это сделать:
- Откройте объект, для которого вы хотите ограничить операцию удаления, в конструкторе LightSwitch
- Использование Код записи в раскрывающемся списке создайте событие Entity_Deleting
- . В событии удаления проверьте количество элементов сведений для главной сущности.Если значение равно 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 работает на уровне набора сущностей, и нет доступа к отдельной сущности, которая будет удалена.