【发布时间】:2020-01-10 20:30:25
【问题描述】:
我在我的应用程序中使用 NodaTime 和 Entity Framework Core。我正在使用 AutoMapper 从我的模型(使用 LocalTime)转换为我的实体(使用映射到 Sql Server 中的时间的时间跨度)。我这样做是为了避免 EF ValueConversions 的陷阱。
当从实体到模型(即时间跨度到本地时间)时,我发现了“官方”的做法(https://github.com/nodatime/nodatime/issues/148):
LocalTime.FromTicksSinceMidnight(timespan.Ticks)
但是,从模型到实体(即 LocalTime 到 Timespan),我不确定最好的方法是什么。日期和时间似乎太棘手了,不能只抓住小时、分钟等:
new TimeSpan(localTime.Hour, localTime.Minute, localTime.Second, localTime.Second, localTime.Millisecond)
我应该像从 LocalTime 到 Timespan 那样使用刻度吗?
TimeSpan.FromTicks(localTime.TickOfSecond)
【问题讨论】:
-
我已经编辑了标题,因为听起来您已经将 TimeSpan 到 LocalTime 排序,而另一个方向会导致您出现问题。如果我有错误的一端,请随时编辑它。
-
您的标题编辑是正确的,谢谢!
标签: sql-server automapper nodatime localtime entity-framework-core-3.1