質問: .Net GUIDとは異なるGUID形式のSQL uniqueidentifier型を使用する既存のデータベースがあります。 **質問:** Dapperを使用して、SQL uniqueidentifierカラムを.Netにどのようにマッピングすればよいですか? **問題:** Dapper-dot-netを使用して、.Net GUIDタイプを使用してカラムをマップすると、コンパイルされて実行されますが、すべての.ToString()出力が同じ不正なGUIDを表示します。 (まあ、それは私がSSMSで見るものと一致しません) 文字列型を使用して列をマップしようとすると、コンパイラエラーが発生します。 アイデア?これは可能ですか?
回答: また、T-SQLのvarcharにキャストすることもできますが、.NETの実際のGUIDタイプが必要でした。 Dapper 1.38では、POCOプロパティを`Nullable`た場合でもマッピングに問題はありませんでした(SQL Serverを基になるRDBMSとしても使用します)。 **SqlGuidまたは文字列が機能しませんでした。** ``` public class MapMe { public Guid? GuidByDapper { get; set; } } class Program { static void Main(string[] args) { using (var connection = Utility.GetConnection()) { var mapped = connection.Query("SELECT NEWID() AS GuidByDapper").Single(); Console.WriteLine("Guid: {0}", mapped.GuidByDapper); } } } ``` コンソールアプリケーションとして、次のように吐き出されます: ``` Guid: 85d17a50-4122-44ee-a118-2a6da2a45461 ```