Comment forcer Sqlservices.Uninstall à supprimer aussi les anciennes données?

Est-ce que j'utilise SqlServices.Uninstall() pour désinstaller des tables d'adhésion ASP.NET et d'autres choses par programmation à partir de la database. Mais lorsque les tables contiennent des anciennes données, cela ne fonctionne pas avec le message d'erreur suivant:

Impossible de désinstaller la ou les entités spécifiées car la table SQL 'aspnet_Membership' dans la database '[DBNAME]' n'est pas vide. Vous devez d'abord supprimer toutes les lignes de la table.

Existe-t-il un moyen de dire à SqlServices ou à toute autre class dans .NET d'effacer aussi ces anciennes données?

Vous pouvez utiliser ce qui suit pour supprimer tous les users de votre database.

 foreach (MembershipUser user in Membership.GetAllUsers()) Membership.DeleteUser(user.UserName, true); SqlServices.Uninstall() 

Faites attention:

Le code ci-dessus exécute 1 + N (instructions DELETE) + instructions SQL à partir de la méthode de désinstallation, où N == Nombre d'users dans la database. Donc ce n'est pas très efficace.

Si vous voulez quelque chose de plus efficace, vous devez écrire votre propre procédure stockée.