.NET Core MVC - 节省在任务上花费的时间

时间:2018-04-28 14:03:54

标签: c# asp.net-core asp.net-core-mvc

我需要通过两个类别节省在任务上花费的时间:中断工作
我不能用JS。我正在使用ASP.NET Core 2 MVC 我有一个解决方案,但可能有更好的解决方案。

我的解决方案是在“/ Task / Details / {id}”视图中创建工作中断按钮。

  • 当用户点击工作按钮时,它会在DB中创建一条记录(下面的型号) 其中DateTime Start等于当前时间。
  • 用户点击时 中断按钮,它会从TaskID中查看数据库中的最后一条记录,并将当前时间保存在DateTime End

然后,我可以选择具有特定Time的所有TaskID条记录,并计算StartEnd之间的差异。

public class Time
{
  public int ID { get; set; }
  public int TaskID { get; set; } // Foreign key
  public string Category { get; set; };
  public DateTime Start { get; set; };
  public DateTime End { get; set; }

  public Task Task // Navigation property
}

1 个答案:

答案 0 :(得分:1)

  1. 如果您只需要时差,为什么不只存储这种差异?你需要少一列。您可以在那里存储UNIX time stamp。在插入存储时,当前日期和时间的UNIX时间戳,在更新时用当前和存储时间戳的差异替换该值。巨大的值 - 超过1524949098秒 - 表示该列包含初始日期时间,小值 - 小于1年(以秒为单位) - 表示该列包含间隔持续时间。
  2. 如果您需要开始和结束时间,请考虑DateTimeOffset属性类型而不是DateTime
  3. 我认为最好将课程重命名为WorkInterval或类似。