当我使用 Entity Framework 时,我想从一个上下文中查询出一条记录,并将其添加到具有相同架构的另一个上下文中。在查询出该记录后,我会将其从上下文中分离,但相关实体都消失了。有没有解决方法?
提前致谢!
当我使用 Entity Framework 时,我想从一个上下文中查询出一条记录,并将其添加到具有相同架构的另一个上下文中。在查询出该记录后,我会将其从上下文中分离,但相关实体都消失了。有没有解决方法?
提前致谢!
您是在询问如何加载子实体吗?如果是,您可以使用.Include方法进行急切加载。假设有一个Person类和一个PhoneNumber类,其中Person有一个PhoneNumber集合,您可以执行以下操作:
List<Person> People = db.People.Where(p => p.Name = "Henry")
.Include("PhoneNumbers")
.ToList();
或者,您可以采用显式加载的方式,在加载实体后调用子实体和相关实体集合的 .Load 方法。通常在没有启用惰性加载时这样做(在 4.0+ 中默认启用了 LazyLoading,以前的版本我不记得了)。
无论如何查询和加载它们,您都必须分离要附加到不同上下文的实体。
这里有一个链接,指向一篇相当不错的 MSDN 文章,详细介绍了如何加载实体。