我有数十种不同的 View ,其中一些来自数据库的数据必须在显示给用户之前进行操作。
例如:
var students = _repository.Students.Select(c => { c.StartDate = FixDateToCurrentYear(c.StartDate ); c.EndDate = FixDateToCurrentYear(c.EndDate); return c; }).ToList();
所以基本上我现在有一个变量,其中
Students
StartDate
和 EndDate
已被 固定 通过某种逻辑,目前不相关。这里的问题是,每当调用 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/