2017-06-10 39 views
0

在我的.NET MVC應用程序我張貼到服務器的方法,該方法的過程中插入一條記錄:如何訪問最近插入的記錄在SQL

var MyVar = new ModelType(); 

await DbHelper.Insert(MyVar); 
Debug.WriteLine(MyVar.ID); 

正如你在我嘗試看到的例子在插入SQL表後,訪問MyVar對象的ID值。但是,該值始終爲0,我的表格按預期填充。我在想變量會被映射到記錄上?這使用EF,但我想這可能是一些幕後魔法?

+1

什麼是DbHelper?如果你不使用EF,你在用什麼? – CodingYoshi

+1

這取決於具體的SQL數據庫如何獲取最後插入的id。檢查文檔 –

+0

@CodingYoshi DbHeper只是我寫的處理所有數據訪問的類。值得注意的另一件事是插入功能正常。至於我使用的是什麼ORM:它是Dapper。 – tocoolforscool

回答

2

由於您使用的是Dapper,因此它不支持輸出參數。但是,在您的DbHelper.Insert方法中,請更改您的代碼,以便返回插入項目的ID。以下是一個示例:

string sql = @" 
    INSERT INTO [SomeTable] ([SomeColumn]) VALUES (@SomeParameter); 
    SELECT CAST(SCOPE_IDENTITY() as int)"; 

請注意查詢中的SELECT。然後執行此操作:

var id = connection.Query<int>(sql, new { SomeColumn = myColumn}).Single();