我有像
这样的实体的DbSetsabstract public class BaseClass
{
public Guid Id { get; set; }
. . .
}
其中BaseClass就像
public MyDbContext(...)
{
. . .
var objectContext = ((IObjectContextAdapter)this).ObjectContext;
objectContext.SavingChanges += (sender, args) =>
{
foreach (var entry in ChangeTracker.Entries())
{
var entity = entry.Entity;
entity.LocalToUtc();
. . .
}
ChangeTracker.DetectChanges();
};
. . .
}
我希望以UTC格式将这些实体的DateTime属性存储在数据库中,但是在同一时间内在DB之外的任何地方以当地时间表示它。
我可以在SavingChanges事件处理程序中将DateTime转换为UTC:
{{1}}
其中LocalToUtc是使用Reflection的扩展方法。
但问题是,当我刚刚阅读数据时,我不知道如何将其转换为相反的方向。 我认为它可能与ObjectMaterialized事件有关,但不确定如何以这种方式实现解决方案。如有任何帮助,我将不胜感激。