Ich bin mit LINQ, aber meine Datenbank-Tabellen nicht über eine Identity-Spalte (obwohl sie eine Leihmutter Primary Key-ID-Spalte verwenden)LINQ Inserts ohne Identity-Spalte
Kann das funktionieren?
Um die Identitätswerte für eine Tabelle abzurufen, gibt es eine gespeicherte Prozedur namens GetIDValueForOrangeTable(), die eine SystemValues-Tabelle betrachtet und die ID darin inkrementiert. Gibt es eine Möglichkeit, wie ich LINQ erhalten kann, um den ID-Wert aus dieser SystemValues-Tabelle auf einer Einfügung zu erhalten, anstatt die integrierte IDENTITY?
Nebenbei, ich denke nicht, dass dies eine sehr gute Idee ist, vor allem nicht für eine Webanwendung. Ich stelle mir vor, dass es wegen dieser SystemValues-Suche viele Parallelkonflikte geben wird. Bin ich in meiner Sorge gerechtfertigt?
Prost Duncan
Wird dies unter einer Web-App sicher (und angemessene Leistung) sein? Die einzige gültige Transaktionsebene für das Web ist das Optimistische Sperren, nicht wahr? Korrigiere mich, wenn ich falsch liege! – Duncan
Vielen Dank, wirklich geschätzt und werde es ein paar Gedanken machen. Wir könnten jedoch tausende, wenn nicht Millionen von Benutzern haben, die diese Datenbank in kurzer Zeit erreichen, also müssen wir ernsthaft über die Leistung nachdenken! – Duncan
Sie können dies tun, ohne zweimal auf 'SystemTables' zuzugreifen - wie in der zweiten Methode [in dieser Antwort] (http: // stackoverflow.com/questions/3453411/sql-server-auto-inkrementierung-das-erlaubt-update-statements/3462957 # 3462957) –