有没有办法在每个查询上注入逻辑?

时间:2013-11-24 15:52:26

标签: c# entity-framework datetime dbcontext

我正在尝试以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();

然后实体没有实现,事件也不会被解雇。

有人能建议我某种方法来实现我上面描述的目标吗?

0 个答案:

没有答案