Using Dapper-dot-net, how do I map SQL uniqueidentifier column to a .Net type?
.net, dapper, t-sql
Solution
Aha! It appears that you must convert the SQL uniqueidentifier to a string in T-SQL and then map to to a string type in .Net.
string sql = @"SELECT TOP 100
CONVERT(varchar(36), MyIdColumn) AS IdColumnString
FROM MyTable";
conn.Query<string>(sql).ToList();
I assume special care would need to be taken converting back from .Net string to T-SQL uniqueidentifier on updates, but I have not yet tested that concern.
Problem
I have an existing database that uses the SQL "uniqueidentifier" type, which looks like a different GUID format than a .Net GUID. Question: Using Dapper, how do I map SQL uniqueidentifier column to .Net? Issue: Using Dapper-dot-net, when I map the column using the .Net GUID type, it compiles and runs, but all of the .ToString() output displays the same incorrect GUID. (well it doesn't match what I see in SSMS) When I try to map the column using the string type, I get a compiler error. Ideas? Is this possible?