答案 0 :(得分:6)
使用Entity Framework DbContext将数据库中的对象读入应用程序时,上下文将跟踪这些对象。这意味着当您在上下文中调用SaveChanges时,对这些对象所做的任何更改都将保留到数据库中。 这可以称为连接对象。
另一方面,您可能希望将这些对象传递给另一个进程。例如。您可能有一台服务器从数据库中读取数据,然后将这些对象传递给客户端。客户端将接收与数据库无连接的纯poco对象。客户端可能会对对象执行的任何更改都不会被服务器自动检测到。这可以称为断开连接的对象。即它们没有被上下文跟踪。
客户端可以将客户端可能已经或可能未经过更改的对象传递回服务器。然后,服务器可以选择将对象附加到上下文,并且在该过程中将断开连接的对象转换为连接的对象。在这种情况下,服务器通常会有一些功能来检测对象的删除,添加和更改,但这取决于服务器代码的开发人员,以根据应用程序的要求决定它应该如何工作。