我将数据作为 BINARY(16)
存储在数据库中,我想使用 dapper 选择数据并将其映射到模型属性,即 Guid
。这样做的好方法是什么?
小巧玲珑 1.50.4
最佳答案
如果您在我们数据库中的所有 guid 都存储为 BINARY(16),我会继续创建自定义类型处理程序以自动将二进制格式转换为 GUID。像这样的东西:
class BinaryGuid {
public Guid Guid;
public BinaryGuid(byte[] binaryGuid) {
<your-code-here>
}
}
public class BinaryGuidHandler: SqlMapper.TypeHandler<BinaryGuid>
{
public override Roles Parse(object value)
{
<your-code-here>
}
public override void SetValue(IDbDataParameter parameter, BinaryGuid value)
{
<your-code-here>
}
}
然后你注册它以供 Dapper 使用
SqlMapper.AddTypeHandler(new BinaryGuidHandler());
你应该可以开始了:
var r = conn.Query<BinaryGuid>("SELECT MyBinaryGuid FROM MyTable")
我在这里写了一篇关于如何在 Dapper 中管理自定义类型的文章(和示例):
https://medium.com/dapper-net/custom-type-handling-4b447b97c620
关于mysql - 如何使用 Dapper 将 BINARY(16) 映射到 GUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50533382/