我正在尝试使用Dapper将“ UTC”转换添加到我所有插入/检索的日期中。现在,所有日期都将作为本地日期插入。经过一番研究,我找到了一种通过以下方式实现TypeHandler
来处理检索到的值的方法:
public class DateTimeHandler : SqlMapper.TypeHandler<DateTime>
{
public override void SetValue(IDbDataParameter parameter, DateTime value)
{
parameter.Value = DateTime.SpecifyKind(value, DateTimeKind.Utc);
}
public override DateTime Parse(object value)
{
return DateTime.SpecifyKind((DateTime)value, DateTimeKind.Utc);
}
}
问题出在插入,好像从未调用过SetValue
。方法SetValue
的用途是什么?如何使用dapper转换传递给SQL的所有DateTime值?