我正在使用Visual Studio 2010中的EntityFramework 4.3.1。
我有一个名为容器的根实体对象,它有一个叫做容器版本的导航属性。
当需要新的容器版本时,我:
- 新建容器版本对象
- 通过 EF 上下文获取根容器
- 将新的容器版本添加到容器版本列表属性。
- 通过 Context.SaveChanges() 保存上下文
所有这些都工作正常。
但是,保存后,当我查看容器对象并检查 containerversions 集合属性时,新的容器版本就在那里,但它的导航属性未填充,并且它的类型不是 System.Data.Entity.DynamicProxy,而是我在保存之前创建的要添加到集合中的对象的新类型。
保存根实体时是否缺少导致填充新插入的容器版本导航属性的内容?
如果仅通过调用new ContenerVersion
创建了实体,则永远不会获得该实例的动态代理。要获取动态代理,您必须使用objectContext.CreateObject
或dbContext.ContainerVersions.Create