Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 加载具有同级包含的EF实体_C#_Entity Framework_Oracle11g - Fatal编程技术网

C# 加载具有同级包含的EF实体

C# 加载具有同级包含的EF实体,c#,entity-framework,oracle11g,C#,Entity Framework,Oracle11g,我必须从数据库中加载一个实体,我需要急切地将数据库中几乎所有的关系加载到该实体中。我尝试使用包含,但没有成功。代码如下: var thingy = _ctx.MASTERANDCOMMANDER .Include(x => x.RED) .Include(x => x.RED.Select(y => y.RED_ONE)) //.Include(x => x.RED.Select(y =>

我必须从数据库中加载一个实体,我需要急切地将数据库中几乎所有的关系加载到该实体中。我尝试使用
包含
,但没有成功。代码如下:

var thingy = _ctx.MASTERANDCOMMANDER
            .Include(x => x.RED) 
            .Include(x => x.RED.Select(y => y.RED_ONE)) 
            //.Include(x => x.RED.Select(y => y.RED_TWO)) 
            .Include(x => x.GREEN) 
            .Include(x => x.GREEN.Select(y => y.GREEN_ONE))
            .Include(x => x.GREEN.Select(y => y.GREEN_ONE.Select(z => z.GREEN_ONE_BIG))) 
            //.Include(x => x.GREEN.Select(y => y.GREEN_TWO)) 
            //.Include(x => x.GREEN.Select(y => y.GREEN_THREE)) 
            .SingleOrDefault(x => x.ID == "someId");
如果我取消对其中任何一项的注释,应用程序将抛出: System.Exception:Oracle 11.2.0.2.0不支持应用

使用EntityFramework 6和Oracle 11.2.0.2.0。 我无法升级EF或Oracle

如何将GREEN_TWO等的关系加载到thingy中

编辑:显示的所有关系都是从左到右的一对多关系。示例:

  • 红色(1至*)红色(1)
  • 绿色一(1到*)绿色一大
    • 也许使用.thenclude()会有所帮助

      var thingy = _ctx.MASTERANDCOMMANDER
                      .Include(x => x.RED) 
                      .ThenInclude(red => red.RED_ONE)
                      .Include(x => x.GREEN) 
                      .ThenInclude(green => green.GREEN_ONE)
                      .ThenInclude(greenOne => greenOne.GREEN_ONE_BIG)            
                      .Where(x => x.ID == "someId").SingleOrDefault();
      

      您可以始终使用
      Join
      而不是
      Include
      ,例如。g、 :

      var thingy = _ctx.MASTERANDCOMMANDER
          .Join(RED, x => x.MASTERANDCOMMANDERID, x => REDID, (m, r) => m)...etc...
      

      以此类推,您需要从数据库中以另一个实体的形式获取
      RED

      此版本的EF没有该方法=(尝试了此方法(实际上使用linq语法)并且有效…但是如果任何项的关系为空,它将返回一个空对象,因此我不得不使用左连接…这些在C上都很难看#