Я знаю, что это старый вопрос, но для любого, кто наткнется на эту тему, как я сделал сегодня, я опубликую свое решение.
Я использую MySql, но у него та же проблема, поскольку я сохраняю Guid в виде строки.
Чтобы исправить сопоставление без псевдонима столбца, я использовал следующее:
public class MySqlGuidTypeHandler : SqlMapper.TypeHandler<Guid>
{
public override void SetValue(IDbDataParameter parameter, Guid guid)
{
parameter.Value = guid.ToString();
}
public override Guid Parse(object value)
{
return new Guid((string)value);
}
}
И в моем Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
SqlMapper.AddTypeHandler(new MySqlGuidTypeHandler());
SqlMapper.RemoveTypeMap(typeof(Guid));
SqlMapper.RemoveTypeMap(typeof(Guid?));
}