一尘不染

使用Dapper将字符串映射到guid

sql

我正在使用Dapper敲定一些访问PostgreSQL数据库所需的负载测试工具。PostgreSQL的这个特定版本本身不支持GUID,因此GUID值存储为32个字符串。使用将值转换为字符串someGuid.ToString("N"),可以使用将值转换回Guid
new Guid(stringValueFromColumn)

我的问题是如何让Dapper读取字符串并将其转换回Guids?

我尝试修改DbType映射,但这不起作用。


阅读 271

收藏
2021-03-17

共1个答案

一尘不染

也许最简单的方法(无需等待dapper)是拥有第二个属性:

public Guid Foo {get;set;}

public string FooString {
    get { return Foo.ToString("N"); }
    set { Foo = new Guid(value); }
}

在您的查询中,将列别名为FooString

当然,这会引发一个问题:dapper是否应支持此类事物的私有属性?我要说的可能是。

2021-03-17