我正在使用Google api以一种形式获取用户信息,该形式具有时区字段。我绑定utc_offset值,该值是从Google api获取的。此值可以是正数或-ve(例如:印度为330,美国为-300)。我正在使用实体框架.so我应该使用哪种数据类型来保存时区。 我添加了一个迁移
`public TimeZoneInfo{ get; set; }`
,但此列未在db中更新。谁能帮我解决这个问题
答案 0 :(得分:0)
First TimeZoneInfo是错误的类型。您实际上并不知道用户所在的时区,仅知道偏移量。 UTC偏移量可以由具有不同夏令时规则等的多个时区共享。
UTC偏移量是一个持续时间。正确的.NET类型是TimeSpan,但是没有对应的标准SQL类型。对于SQL Server EF,将使用Time,但如果尝试存储间隔[0,24小时)以外的持续时间,则会出现运行时错误。
因此,正确的类型只是int
,您需要跟踪度量单位。像这样:
public int UTCOffsetHours { get; set; }