据我所知,实体框架实现了身份映射模式,因此 EF 在内存中缓存了一些实体。
让我给你举个例子。
var context = new StudentContext();
var student = context.Students.Where(st => st.Id == 34).FirstOrDefault();
// any way of changing student in DB
var anotherContext = new StudentContext();
var anotherStudent = anotherContext.Students.Where(st => st.Id == 34).FirstOrDefault();
anotherStudent.Name = "John Smith";
anotherContext.SaveChanges();
student = context.Students.Where(st => st.Id == 34).FirstOrDefault();
// student.Name contains old value
有没有办法在student
不重新创建上下文的情况下使第一个上下文的缓存无效并检索新实体?
感谢帮助。