我正在尝试将记录插入到我的数据库中并检索它刚刚添加的GUID。
如果我有一个包含3列的表,GUID
,FirstName
,LastName
,请说。我需要插入一条新记录,然后返回刚刚生成的GUID。问题是名字和名字经常重复。我不太清楚如何完成
以下是我尝试的内容,我知道下面的内容不会起作用,因为我并没有真正告诉它选择哪一列,我不知道如何辨别:
var query = @"INSERT INTO MyTable(GUID, FirstName, LastName)
SELECT
@GUID, @FirstName, @LastName);
using (var oConn = CreateConnection())
{
var test = oConn.Query<string>(query, new
{
GUID = Guid.NewGuid(),
"John",
"Doe"
}).Single();
}
我得到的错误是
序列不包含元素
答案 0 :(得分:3)
如果您只想要插入的Guid,为什么不将它存储在代码中的局部变量中并根据需要使用它?
我也在代码中看到一些错误。以下代码已更正,应该可以使用。
var guid = Guid.NewGuid();
var query = @"INSERT INTO
MyTable (GUID, FirstName, LastName) values ( @GUID, @FirstName,@LastName);";
using (var conn = CreateConnection())
{
conn.Execute(query, new { @GUID = guid, @FirstName= "John", @LastName= "Scott" });
}
// You can use the value in guid variable now. It will be Id you inserted just now
答案 1 :(得分:0)
Dapper Contrib需要一个自动生成的ID,它不能是GUID,并且不能传递预先生成的Guid