2009-04-30 4 views
17

Ich verwende LINQ to SQL zum Einfügen einfacher Daten in eine Tabelle OHNE stored procedure. Die Tabelle enthält eine Primärschlüssel-ID-Spalte, die sowohl in SQL Server als auch in meiner DBML als IDENTIITY-Spalte festgelegt ist.Linq to SQL - So finden Sie den Wert der IDENTITY-Spalte nach InsertOnSubmit()

Zuerst rufe ich InsertOnSubmit(); mit Daten für eine einzelne Zeile, und dann rufe ich SubmitChanges();, um die Zeile an die db zu committen. Aber ich denke, dass es einen einfachen Weg geben muss, um dann den Spaltenwert der Zeile IDENTITY der neu eingefügten Zeile abzurufen. Ich möchte nicht den IDENTITY Spaltenwert der DB zur Verfügung stellen, ich will es für mich erzeugen.

Wie wird das am besten gehandhabt?

Antwort

27

hier ist ein einfacher Code

Snippet
  Dim odb As New DataClassesDataContext 
      Dim tst As New test 
      tst.name = "abcd" 
      odb.tests.InsertOnSubmit(tst) 
      odb.SubmitChanges() 
      Response.Write("id:" + tst.id.ToString) 

so, im Grunde das Objekt, das Sie in InsertOnSubmit verwendet wird, die Identität Feld, nachdem der Datensatz bevölkert bekommen hat in der Datenbank

+1

ausgezeichnet, dank erstellt! –

+0

froh, ich könnte helfen – Vikram

+0

Super, Danke Vikram :) – TechieBrij