在Entity Framework中是否有映射配置,我可以声明将我将在db中保存的任何日期时间转换为特定时区(例如CEST),每当我从DB读取它时,它应该转换为UTC?
答案 0 :(得分:2)
快速回答:否。
EF只是来回移动值。
建议:只将UTC值存储在数据库中。如果您需要恢复原始时区,那么也要存储原始时区(但请注意,常见的时区缩写通常不明确。)
日期和时间很难处理,但大多数系统只是假设一个区域设置而忽略了问题。
答案 1 :(得分:0)
如果必须在本地区域中保存日期时间,则可以在实体类中为UTC日期时间添加新属性。 e.g。
var appid = 1234; var itemid = 1;
var item = podio.ItemService.GetItemByAppItemId(appid, itemid);
var update = new Item {ItemId = item.ItemId};
var creator = item.CreatedBy.Id;
var resp = update.Field<ContactItemField>("responsibility");
resp.ContactIds = new List<int>{creator.Value};
//change some other fields as well
podio.ItemService.UpdateItem(update);
顺便说一下,我没有测试过这种方法。仅供参考。