2009-10-02 6 views
0

Après avoir appelé la méthodeentrées dans Orphaned aspnetdb

_membershipProvider.DeleteUser(user.UserName, false); 

où où le second paramètre (false) est deleteAllRelatedData, des entrées orphelines sont laissés dans la base de données (tableau aspnet_Users et probablement plus). Quelle est la meilleure pratique pour les nettoyer?

EDIT: Le code de gestion des utilisateurs a déjà été modifié pour utiliser maintenant true en tant que deuxième paramètre, mais il reste un db plein d'entrées de courrier indésirable. Je me demande comment faire pour les nettoyer. Je regarde actuellement le sp fourni avec la base de données dbo.aspnet_Users_DeleteUser curieux sur le paramètre @TablesToDeleteFrom int se demandant exactement ce que cela signifie. On dirait une sorte de bitmask.

+2

Pouvez-vous changer l'appel à DeleteUser (..., vrai)? –

+0

Nice Bob, vous devriez mettre cela comme une réponse. – RichardOD

+0

Oui, c'est la réponse correcte, Bob :) Cependant, après avoir couru avec le paramètre false pendant un moment, nous avons un aspnetdb full'o'junk. C'est ce que cette question concerne. – spender

Répondre

2

Je suppose que vous auriez le choix entre Cascade delete ou écrire quelque chose qui fonctionne comme un travail périodiquement.

Ou mieux encore, faites comme indiqué dans le commentaire de Bob! Mise à jour - comme il semble que vous ayez arrêté cela, écrivez simplement un script SQL pour détecter les enregistrements orphelins, puis transformez-le en une instruction DELETE.

+0

J'ai ajouté à ma question ... il y a tellement de contraintes FK en place que cela s'avère être une tâche ardue. Je regarde le SP aspnet_Users_DeleteUser SP fourni, qui semble avoir la plupart de cette "détection" déjà en place. – spender

Questions connexes