当前位置:  开发笔记 > 编程语言 > 正文

保存后TimeSpan滴答获得+1

如何解决《保存后TimeSpan滴答获得+1》经验,为你挑选了0个好方法。

我有一个小巧的问题,我不知道如何解决这个问题:

我有一个这样的Poco:

public class Test
{
    public long Id { get; set; }
    public TimeSpan? Time { get; set; }
}

字段Time是MySQL'TIME'.例如,如果我用Dapper加载一个带有1000个刻度的时间字段的行,并且我保存此Poco而不做任何更改,再次重新加载同一行,时间字段现在为1001刻度.

我究竟做错了什么 ?

编辑:

我如何加载我的行:

var testobj = Db.Query("select * from Test where Id = @id", new {id = Id});

我如何保存它:

Db.Execute("replace into Test values (@Id,@Time)", testObj);

编辑2:

保存前的时间跨度对象:

{15:22:24}
    Days: 0
    Hours: 15
    Milliseconds: 0
    Minutes: 22
    Seconds: 24
    Ticks: 553440000000
    TotalDays: 0.64055555555555554
    TotalHours: 15.373333333333333
    TotalMilliseconds: 55344000.0
    TotalMinutes: 922.4
    TotalSeconds: 55344.0

保存后:

{15:22:25}
    Days: 0
    Hours: 15
    Milliseconds: 0
    Minutes: 22
    Seconds: 25
    Ticks: 553450000000
    TotalDays: 0.64056712962962958
    TotalHours: 15.37361111111111
    TotalMilliseconds: 55345000.0
    TotalMinutes: 922.41666666666674
    TotalSeconds: 55345.0

你可以看到Ticks 553440000000并成为553450000000

编辑3:

我在我的Test类中使用Hans提示,如下所示:

public class Test
{
    public long Id { get; set; }
    private TimeSpan? _time;

    public TimeSpan? Time
    {
        get
        {
            if (_time.HasValue)
                return TimeSpan.FromTicks((long)Math.Floor(_time.Value.Ticks / 100000000d) * 100000000);
            return _time;
        }
        set { _time = value; }
    }
}

它有效,但它仍然很奇怪

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有