我正在尝试以UTC格式存储所有日期,但是根据用户在应用设置中使用Entity Framework DbContext指定的时区检索它们。
我在数据库中存储值时没有问题因为我可以覆盖SaveChanges。但是我在检索后转换所有日期时都陷入困境。
我已尝试使用ObjectMaterialized
事件:
((IObjectContextAdapter)context).ObjectContext.ObjectMaterialized += ObjectMaterialized;
private static void ObjectMaterialized(object sender, ObjectMaterializedEventArgs args)
{
//Here is my convertion
}
当我从db中检索整个实体时,它非常有效:
var task = db.Tasks.FirstOrDefault();
但是当我做任何预测时,例如:
var task = db.Tasks.Select(t => new { t.DueDate })
.FirstOrDefault();
然后实体没有实现,事件也不会被解雇。
有人能建议我某种方法来实现我上面描述的目标吗?