Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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/6/entity-framework/4.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# 选择具有多深度包含的特定列_C#_Entity Framework - Fatal编程技术网

C# 选择具有多深度包含的特定列

C# 选择具有多深度包含的特定列,c#,entity-framework,C#,Entity Framework,我正在实体框架中选择一个匿名对象。我正在将子属性包含到匿名对象中 这非常类似于。不同的是,我包括多(两)个层次的深度 例如: context.Items.Include(x => x.ChildItems.Select(y => y.House)).ToList(); // ^^^^^^^^^^^^^^^^^^^^^ 通过上面的基本选择,将填充ChildItems及其关联的房屋。但是,如果我尝试选择下面这样的匿

我正在实体框架中选择一个匿名对象。我正在将子属性包含到匿名对象中

这非常类似于。不同的是,我包括多(两)个层次的深度

例如:

context.Items.Include(x => x.ChildItems.Select(y => y.House)).ToList();
//                                     ^^^^^^^^^^^^^^^^^^^^^
通过上面的基本选择,将填充ChildItems及其关联的房屋。但是,如果我尝试选择下面这样的匿名对象,则ChildItems存在,但其House项为null

context.Items.Include(x => x.ChildItems.Select(y => y.House))
    .Select(x => new
    {
        x.ItemID,
        x.OtherInfo,
        x.ChildItems,
    }).ToList();

你为什么要这样做?大多数ORM的要点是具体化表示数据库中的行的运行时类。@ErikPhilips这是选择数据时选择特定列(或者,在下面,省略特定列)的标准方法。如果一个表的列数过多,或者某些列的数据量过多,而不需要从数据库中回调,那么您可以对查询表执行匿名选择,然后将其重新具体化到实体中。在执行此操作时,不要使用实体框架或任何ORM。并用不需要的属性具体化对象。否则,如果您不打算将它们映射到真实对象,请不要使用EF。