我有数十种不同的 View ,其中一些来自数据库的数据必须在显示给用户之前进行操作。

例如:

var students = _repository.Students.Select(c => { c.StartDate = FixDateToCurrentYear(c.StartDate ); c.EndDate = FixDateToCurrentYear(c.EndDate); return c; }).ToList();

所以基本上我现在有一个变量,其中 Students StartDateEndDate 已被 固定 通过某种逻辑,目前不相关。

这里的问题是,每当调用 SaveChanges() 函数时,学生的更改日期也会持久保存到数据库中。

我只想在特定 View 中为逻辑使用更改的日期。我怎么能处理这个?

我听说过 .AsNoTracking(); 但这必须直接放在 DbSet 项中,但我想在 Controller 端处理它,这可能吗?

最佳答案

首先从数据库中拉出学生,然后对匿名类型进行选择。 EF 不知道如何跟踪更改。

var students =
    _repository.Students.ToList()
               .Select(s =>
                   new { StartDate = FixDateToCurrentYear(c.StartDate),
                         EndDate = FixDateToCurrentYear(c.EndDate),
                         Student = s });

关于c# - EF 查询只读 Iqueryable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27037822/

10-13 08:03
查看更多