Если все ваши 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