2016-11-21 4 views
0

Я знаю, что DeleteUser() будет запускать процедуры для удаления всех отношений и т. Д. Будет ли внутренний внутренний DeleteData с условием where также удалить все отношения или он просто попытается удалить основную запись из Таблица? Если какие-либо реляционные данные существуют, это вызовет ошибку?UserInfoProvider.DeleteUser() vs DeleteData (whereCondition)

ответ

1

Если вы звоните UserInfoProvider.DeleteData(), он не удалит связанные данные. Он просто выполняет SQL-запрос удаления объекта. Он даже не ищет запрос cms.user.removedependencies.

С другой стороны, при вызове DeleteData() на информационном объекте будут удалены связанные данные.

Если вам необходимо массово удалить пользователей, то извлеките их из БД с помощью объектного запроса (убедитесь, что вы ограничиваете столбцы,должно быть достаточно). И затем перебираем через коллекцию вызов Delete() на каждом из них.

foreach (var user in UserInfoProvider.GetUsers().Where("UserEnabled=0").Columns("UserID").TypedResult.Items) 
{ 
    user.Delete(); 
} 
+0

Благодарим за информацию! – MisterDoe