0

当调用上下文的 SaveChanges() 方法时,更改另一端的关系会自动更新。

例如,如果我有一个老师 mrX,他有一个虚拟的 ICollection 学生,包括 littleJohnny

mrX.Students.Remove(littleJohnny);
Debug.Assert(littleJohnny.Teacher!=null); //assert should pass
context.SaveChanges();
Debug.Assert(littleJohnny.Teacher==null); //assert should pass

mrX.Students.Add(littleJohnny);
context.SaveChanges();//revert to previous state

littleJohnny.Teacher=null;
Debug.Assert(mrX.Students.Contains(littleJohnny)); //assert should pass
context.SaveChanges();
Debug.Assert(!mrX.Students.Contains(littleJohnny)); //assert should pass
  1. 有没有办法在不将数据保存到实体框架 4.3 和 5.0 中的数据库的情况下更新此类关系?

  2. 在另一种情况下,如果我有一个映射到上述实体的 ViewModel,是否有一种简单的方法可以复制此 EF 行为 -> 即跟踪关系并在调用方法时更新关系?

4

1 回答 1

1

试着打电话context.ChangeTracker.DetectChanges()

如果这不起作用,那么您的相关实体尚未正确初始化

于 2013-02-12T12:31:08.547 回答