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();
}
我知道 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();
}