2008-10-03 6 views
3

J'utilise asp.net SqlMembershipProvider et LinqToSql dans une application de loisir/apprentissage. J'ai quelques propriétés d'utilisateur que je garde dans LinqtoSql, ainsi mon flux est: Membership.CreateUser -> MyClass.AddUserDetails. Je voudrais emballer le tout dans une transaction, donc si le bit myclass échoue, je peux annuler le bit d'adhésion. Des suggestions sur la façon de le faire?Comment faire pour conclure une transaction autour de Membership.CreateUser?

+0

supprimés balises redondantes – Sklivvz

Répondre

3

Les fournisseurs ne prennent pas explicitement les transactions, j'ai demandé cette fonction il y a quelque temps:

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=102268

Je pense que si vous utilisez la classe TransactionScope il devrait fonctionner, mais vous aurez les frais généraux d'une transaction coordonnée par MSDTC.

+1

et les maux de tête de DTC. L'amener à travailler dans un environnement partagé par exemple ... sob ... – Sklivvz

0

Vous pouvez définir la propriété Transaction du DataContext pour le faire participer à une transaction que vous avez déjà.

4

Mon expérience de vie réelle (arrivé plus d'une fois):

  • programmeur junior écrit un site.
  • Lors de l'examen du code, j'attrape la transaction manquante entre la création de l'utilisateur et la création du profil (généralement avec un SqlProvider personnalisé)
  • Nous emballons tout dans une transaction DTC.
  • Rien ne fonctionne sur l'ordinateur du programmeur junior.
  • Corriger le DTC sur l'ordinateur du programmeur junior.
  • Déployer vers un environnement d'hébergement partagé.
  • Rien ne fonctionne dans l'environnement d'hébergement.
  • Discutez pendant 4 heures avec l'hébergeur essayant de réparer leur DTC.
  • Supprimez la transaction car le site a pour aller en ligne.
  • Prier.

Je ne aime pas vraiment plus de membres ...

+0

Même expérience ici, moins la partie hébergement. Bien que je ne sois pas sûr pourquoi TransactionScope veut toujours exiger DTC, quand il ne devrait pas en avoir besoin .... au moins quand l'adhésion est impliquée. –

+0

Est-ce toujours l'état de l'art à votre connaissance, c'est-à-dire, utilisez-vous encore l'adhésion et sans transactions, ou avez-vous trouvé une meilleure alternative? – ChrisW

+0

@ChrisW afaik plus personne n'utilise vraiment l'adhésion – Sklivvz

Questions connexes