我正在使用Dapper敲定一些访问PostgreSQL数据库所需的负载测试工具。PostgreSQL的这个特定版本本身不支持GUID,因此GUID值存储为32个字符串。使用将值转换为字符串someGuid.ToString("N"),可以使用将值转换回Guid new Guid(stringValueFromColumn)。
someGuid.ToString("N")
new Guid(stringValueFromColumn)
我的问题是如何让Dapper读取字符串并将其转换回Guids?
我尝试修改DbType映射,但这不起作用。
也许最简单的方法(无需等待dapper)是拥有第二个属性:
public Guid Foo {get;set;} public string FooString { get { return Foo.ToString("N"); } set { Foo = new Guid(value); } }
在您的查询中,将列别名为FooString。
FooString
当然,这会引发一个问题:dapper是否应支持此类事物的私有属性?我要说的可能是。