Я искал простой способ сопоставления свойства класса со столбцом таблицы, и я обнаружил, что Dapper свободно использует карту, и я подумал, что это будет отличной альтернативой значительному стандартному коду, который нужно будет написать просто для отображения свойство столбца. Но, похоже, это не работает.
FluentMapper.Initialize(c =>
{
c.AddMap(new MarginSummaryMap());
});
[Serializable]
[Table("PbCash")]
public class MarginSummary : Entity
{
public long RunId { get; set; }
public DateTime? BusinessDate { get; set; }
[Write(false)]
public DateTime ProcessDate { get; set; }
public string Broker { get; set; }
public string BrokerAccountId { get; set; }
public string Account { get; set; }
public string Folio { get; set; }
public decimal? ActualExcessOrDeficit { get; set; }
[Write(false)]
public decimal? ProjectedExcessOrDeficit { get; set; }
public string Comment { get; set; }
}
public class MarginSummaryMap : EntityMap<MarginSummary>
{
public MarginSummaryMap()
{
Map(c => c.ActualExcessOrDeficit).ToColumn("ExcessOrDeficit");
}
}
Затем, когда я пытаюсь сохранить данные, я получаю исключение, что столбец ActualExcessOrDeficit
не существует в таблице. Ну, это не так, и сопоставление предполагается преобразовать в фактический столбец ExcessOrDeficit
.
Похоже, что это ошибка в Dapper.FluentMap
, поскольку проблема решается, если я меняю тип с decimal?
на decimal
.
Кто-нибудь имел эту работу - я хотел бы знать, как это исправить.