C# · 12月 29, 2021

c# – 使用Dapper将string映射到guid

我使用Dapper来敲出一些需要访问Postgresql数据库的负载测试工具.这个特定版本的Postgresql本身不支持GUID,所以GUID值存储为32个字符串.使用someGuid.ToString(“N”)将值转换为字符串,转换回Guid可以使用新的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.

当然这样就提示了一个问题:应该为这种类型的东西支持私有属性?我说:大概