我有一个使用 SQL“唯一标识符”类型的现有数据库,它看起来与 .Net GUID 的 GUID 格式不同。
问题:使用 Dapper,如何将 SQL uniqueidentifier 列映射到 .Net?
问题:
使用 Dapper-dot-net,当我使用 .Net GUID 类型映射列时,它会编译并运行,但所有 .ToString() 输出都显示相同的错误 GUID。 (好吧,它与我在 SSMS 中看到的不符)
当我尝试使用字符串类型映射列时,出现编译器错误。
想法?这可能吗?
最佳答案
我还发现我可以将它转换为 T-SQL 中的 varchar,但我想要 .NET 中的实际 GUID 类型。
使用 Dapper 1.38(也使用 SQL Server 作为底层 RDBMS),如果我将 POCO 属性设为 Nullable<Guid>
,我在映射时没有问题。 . 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<MapMe>("SELECT NEWID() AS GuidByDapper").Single();
Console.WriteLine("Guid: {0}", mapped.GuidByDapper);
}
}
}
作为控制台应用程序,它吐出以下内容:
Guid: 85d17a50-4122-44ee-a118-2a6da2a45461
关于.net - 使用 Dapper-dot-net,如何将 SQL uniqueidentifier 列映射到 .Net 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20685800/