1

で値を取得。挿入GUIDと私は私のデータベースにレコードを挿入し、それだけで追加したGUIDを取得しようとしていますdapperの

私は3列、GUIDFirstNameLastNameを持つテーブルを持っている場合のは、言ってみましょう。私は新しいレコードを挿入し、ちょうど生成された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(); 
} 

私が手にエラーが

シーケンスは、あなたが挿入されただけでGUIDをしたい場合は、なぜ、LOCに保管しないで何の要素

+1

'Guid.NewGuid()'を変数に格納し、保存するために渡します。あなたはあなたのコードで利用可能な変数値を持っています。 – Shyju

答えて

1

が含まれていませんあなたのコードの変数を変更し、必要に応じてそれを使用しますか?

コードにもいくつかのエラーがあります。以下のコードは修正され、動作するはずです。

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 
+0

コードでGUIDを作成すると、衝突が発生します。 IDを作成するには、DBを信頼する必要があります。 –

+2

[私は賭けることができる](http://stackoverflow.com/questions/1705008/simple-proof-that-guid-is-not-unique?noredirect=1&lq=1) – Shyju

関連する問題