Frage

Ich bin mit dem asp.net SqlMembershipProvider und LinqToSql in einem Hobby / Learning-Anwendung. Ich habe einige Benutzereigenschaften, die ich in LinqToSql zu halten, so mein Flow ist: Membership.CreateUser -> MyClass.AddUserDetails. Ich mag die ganze Sache in einer Transaktion wickeln, so dass, wenn das myclass Bit ausfällt kann ich die Mitgliedschaft etwas zurückrollen. Alle Vorschläge, wie dies zu tun?

War es hilfreich?

Lösung

Die Anbieter nicht explizit Transaktionen unterstützen, frage ich einige Zeit für diese Funktion vor:

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

Ich denke, wenn Sie die Transaction Klasse verwenden, sollte es funktionieren, wenn Sie den Aufwand einer MSDTC-koordinierte Transaktion haben.

Andere Tipps

Meine echte Lebenserfahrung (geschah mehr als einmal):

  • Junior Programmierer schreibt eine Website.
  • Während Code-Review, ertappe ich die fehlende Transaktion zwischen Benutzererstellung und Profilerstellung (in der Regel mit einem benutzerdefinierten SqlProvider)
  • Wir wickeln alles in einer DTC-Transaktion.
  • Nichts funktioniert auf Junior-Programmierer des Computers.
  • Fix DTC auf Junior-Programmierer des Computers.
  • Stellen zu Shared-Hosting-Umgebung.
  • Nichts funktioniert Umgebung in Hosting.
  • 4 Stunden Argumentieren mit Hosting-Unternehmen versuchen, ihre DTC zu beheben.
  • Entfernen Transaktion, weil Website hat , online zu gehen.
  • Pray.

Ich weiß nicht wirklich wie die Mitgliedschaft mehr ...

Sie können die Transaction-Eigenschaft des Datacontext gesetzt, um es in einer Transaktion zu machen teilnehmen Sie bereits haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top