2009-06-12 12 views
0

Erstens, um klar zu sein, ich spreche nicht über LINQ zu SPRocs.Können LINQ to SQL und traditionelle Stored Procedures gleichzeitig existieren?

Ich habe eine vorhandene DAL, die über 100 gespeicherten Prozeduren verwendet. Dies wurde erstellt, als dieses Programm eine Web-App war. Jetzt ist es eine Winform-App in einer manchmal verbundenen Umgebung, die eine lokale Datenbank verwendet. Ich habe die vorhandene DAL im Interesse der Zeit an Ort und Stelle aber bin jetzt

Meine Frage ist, gibt es einige Fallstricke sollte ich bewusst sein, zu einem dbml (datacontext) zu meinem Programm zu gehen, mit dem voran gehen, während bestehende DAL vorhanden?

Dies würde mir erlauben, die vorhandene DAL in kleinen Schritten zu ersetzen.

Antwort

1

Nun, eine mögliche Falle, die Sie beachten müssen, wäre, wenn einer Ihrer SProcs die Daten eines Objekts ändert, das Ihr LINQ DataContext gerade verwendet.

Wenn Sie optimistische Nebenläufigkeitssperrung im schlimmsten Fall haben, konnte die LINQ-Entität später nicht mehr aktualisiert werden (da sich die zugrunde liegenden Werte in der Datenbank "hinter" ihrer Rückseite geändert haben).

Das ist wirklich kein großes Problem - Sie müssen sich trotzdem damit befassen (Gleichzeitigkeit zwischen mehreren Benutzern). Ansonsten sehe ich keine Probleme.

Marc

1

Keine, die ich kenne. Der DataContext kann nur als eine andere Anwendung betrachtet werden; Die Annahme ist, dass Ihre Datenbank beliebige Anwendungsverbindungen verarbeiten kann, vorausgesetzt, die Anwendung verhält sich gut. Linq to SQL verwendet Standard-SQL-Befehle hinter den Kulissen, um seine Arbeit zu erledigen, und kennt typische Dinge wie Satzsperren und Transaktionen. Ich denke, deine Herangehensweise ist solide.