将EF 4.1升级到6.1.2后未加载导航属性

时间:2017-03-28 07:31:31

标签: c# entity-framework

我最近将实体框架版本4.1升级到6.1.2,目标是.Net framework 4.0。它有数据库第一种方法。

我面临的问题是,在升级之前,所有导航属性都已正确加载,但升级后它将始终返回Null。

升级后的当前配置与以前完全相同。

  1. 启用了延迟加载。
  2. 已启用代理。
  3. 我删除了以前创建的实体,并使用EF 6.1代码生成器重新生成了DBContext和所有实体类(T4模板)
  4. 所有其他事情都很好。只是导航属性不起作用。
  5. 例如,下面的内容在升级之前正常工作。

    var listResult = entities.sampleEntity.where(c=>c.active).ToList();
    var result = listResult.navigationProperty1.navigationCollection1.select(c=>c.active).firstOrDefault().Id;
    

    升级EF后我是否遗漏了任何配置?截至目前,我已经尝试了两种解决方案。

    1. 重写所有查询以加载相关实体。这可能会改变许多查询。
    2. 再次使用DataContext代码生成器升级EF 6.1.2。这有风险,因为它不支持EF 7我猜。建议使用DBContext。
    3. 编辑:

      我已经使用EF 6.x EntityObject Generator来使用带有EF 6的ObjectContext API。一切都和升级版本之前一样正常。

      谢谢, Fenil

0 个答案:

没有答案