UserInfoProvider.DeleteUser() 与 DeleteData(whereCondition)

UserInfoProvider.DeleteUser() vs DeleteData(whereCondition)

我知道 DeleteUser() 将 运行 删除所有关系等的过程。具有 where 条件的私有内部 DeleteData 是否也会删除所有关系,或者它会尝试删除来自 table 的主要记录?如果存在任何关系数据,它会抛出错误吗?

如果您调用UserInfoProvider.DeleteData(),它不会删除相关数据。它只是执行对象的删除 SQL 查询。它甚至不会查找 cms.user.removedependencies 查询。

另一方面,对信息对象调用 DeleteData() 会导致相关数据被删除。

如果您需要批量删除用户,然后首先使用对象查询从数据库中检索他们(确保您限制列,UserID 应该足够了)。然后在每个集合上迭代调用 Delete()

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