如何在SQL中访问最近插入的记录

时间:2017-06-10 06:08:33

标签: c# sql

在我的.net mvc应用程序中,我发布到服务器方法并在此方法中插入记录:

var MyVar = new ModelType();

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

正如您在示例中所看到的,我尝试在将其插入SQL表后访问MyVar对象的ID值。但是,该值始终为0,并且我的表按预期填充。我在想这个变量会被映射到记录中吗?这可以使用EF,但我认为这可能是一些幕后魔术?

1 个答案:

答案 0 :(得分:2)

由于您使用的是Dapper,因此它不支持out参数。但是在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();