Я пытаюсь использовать Dapper с провайдером Hana (провайдер HANA .Net Core 2.1 ADO.NET, ср. Поддержка Microsoft .NET Core в библиотеке SAP "Справочник по программированию клиентского интерфейса SAP HANA для платформы SAP HANA"). Все нормально работает со случайным DataReader
, но возникает проблема, когда я пытаюсь использовать некоторый класс сущностей, который содержит десятичный тип с Dapper:
public class SomeType
{
public string Text { get; set; }
public decimal Value { get; set; }
}
var resultSet = hanaConnection.Query<SomeType>("some hana sql");
К сожалению, выдается следующее исключение:
Тип 'Sap.Data.Hana.HanaDecimal' в сборке 'Sap.Data.Hana.Core.v2.1, версия = 2.4.151.0, Culture = нейтральный, PublicKeyToken = 0326b8ea63db4bc4' не помечен как сериализуемый.
Я попытался создать собственный обработчик типа для decimal
, не повезло:
public class DecimalTypeHandler : SqlMapper.TypeHandler<decimal>
{
public override decimal Parse(object value)
{
return Convert.ToDecimal(value);
}
public override void SetValue(IDbDataParameter parameter, decimal value)
{
parameter.Value = value;
}
}
Mapper даже не вызывается, поэтому я предполагаю, что при извлечении данных выдается ошибкаиз БД
Есть ли обходной путь, поскольку я не могу добавить атрибут Serializable
в проприетарную сборку с закрытым исходным кодом?