2009-03-18 14 views
7

Welcher ist der beste Weg, auf Parallelitätsprobleme zu überprüfen, wenn Sie LINQ to SQL in einer ASP.net-Anwendung verwenden.Parallelität mit Linq To Sql und ASP.NET

In meiner Anwendung erhalte ich einen Datensatz aus der Datenbank und zeigt die Felder in bearbeitbaren Textfeldern an. Dann wird der Datenkontext weggeworfen.

Wie sollte ich das Entitätsobjekt speichern, damit ich die integrierten Funktionen von L2SQL nutzen kann? Ich kann das Objekt in der Sitzung nicht speichern und es an einen neuen Datenkontext anhängen: l2s beschwert sich, dass das Objekt nicht neu ist.

Die LinqDataSource schafft das irgendwie. Weiß jemand wie?

Antwort

2

Die Art und Weise die Parallelität in Linq2Sql funktioniert, ist, dass es die ursprünglichen Werte speichert und vergleicht sie auf dem Einsatz.

Wenn Sie den Datenkontext wegwerfen, verlieren Sie die ursprünglichen Werte.

Was ich normalerweise tun, ist das Objekt der Datenbank noch einmal zu laden, wenn ich im Begriff bin zu speichern, dann ändern Sie das Objekt mit den Werten aus dem Formular.

+2

Ja, aber wenn ich das tue (was ich vorher war), werden die Änderungen anderer Benutzer geladen und Linq to sql wird keinen Gleichzeitigkeitsfehler ausgeben. –

+0

haben Sie versucht, die Tabelle .Attach (TEntity Einheit, TEntity Original) Methode zu betrachten? – AndreasN

+0

Wie unterscheidet sich das nur davon, das Objekt aus der Datenbank zu holen und die Änderungen vorzunehmen und SubmitChanges() auszuführen? –

0

Linq To SQL unterstützt standardmäßig optimistic concurrency control.

können Sie die UpdateCheck Eigenschaft in der Tabelle der einzelnen Felder ändern:

In the LINQ to SQL object model, an optimistic concurrency conflict occurs when both of the following conditions are true:

  • The client tries to submit changes to the database.
  • One or more update-check values have been updated in the database since the client last read them.
+0

Ihr Problem ist, dass sie den DataContext beim Postback verlieren, und Sie können nicht das ursprüngliche Objekt ein neues DC anhängen. – Lucas