修改实体而不对其进行跟踪



我在服务类中有一个名为 GetAll(( 的方法,它从实体框架返回实体。方法如下:

public ActionResult List()
{
var tasklogs = _timeLogService.GetAll()
.Select(l=>{
l.StartTime.Value.AddHours(1);
return l;
});
return PartialView(tasklogs);
}

我想在根据某些逻辑修改的视图中显示数据,在此示例中,我在原始日期上增加了一小时。

问题是,如果我刷新页面,我看到每次页面刷新的小时数都在增加,即 GetAll(( 方法返回上次修改的值,尽管它在数据库中并不相同,即我不在数据库中保存日期修改,但 GetAll 返回修改日期。

我在某处读到,要使其正常工作,我需要分离实体。

所以,我的问题是,有没有更好的方法在服务层中做到这一点,因为我必须在很多地方这样做。修改日期的根本原因是我将日期保存在 db 中的 UTC 格式,但是当我在视图中显示它时,我会在控制器操作中将其转换为本地时区。

我希望我说得很清楚。

谢谢

正如我的评论中所写,在我将 DbContext 实例创建更改为每个请求后,问题得到解决。

相关内容

最新更新