在我的.net mvc应用程序中,我发布到服务器方法并在此方法中插入记录:
var MyVar = new ModelType();
await DbHelper.Insert(MyVar);
Debug.WriteLine(MyVar.ID);
正如您在示例中所看到的,我尝试在将其插入SQL表后访问MyVar对象的ID值。但是,该值始终为0,并且我的表按预期填充。我在想这个变量会被映射到记录中吗?这可以使用EF,但我认为这可能是一些幕后魔术?
答案 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();