列のNULL値に対するDapperキャスト例外

Marc のコメントによると、これは起こるべきではなく、ライブラリの修正が必要です。この問題はここで追跡されており、他の人にも影響します。


sqlite の null 許容型のソリューション。リンク

public class NullableLongHandler : SqlMapper.TypeHandler<long?>
{
    public override void SetValue(IDbDataParameter parameter, long? value)
    {
        if (value.HasValue)
            parameter.Value = value.Value;
        else
            parameter.Value = DBNull.Value;
    }

    public override long? Parse(object value)
    {
        if (value == null || value is DBNull) return null;
        return Convert.ToInt64(value);
    }
}

そして

SqlMapper.AddTypeHandler(new NullableLongHandler());