有数百个使用include语句加载Entity Framework对象的例子,但它们没有Great GrandChild对象。
我有一个复杂的对象链接到大约48个表,其中一些超出了提供的简单parent.child.grandchild代码。具体来说,我有一个带有子实体的模式对象,它包含保存地址字段实体的地址实体。 (在其他实体中持有。)
以下是地址大孩子的常用解决方案:
context.StagingPatternSet.Include( sp => sp.StagingPatternEntities.Select( e => e.StagingPatternAddresses ).ToList();
但是如何将StagingPatternAddressField添加到StagingPatternAddresses的子列表中。除了我能找到的第一个选择之外,Linq没有任何补充。
Linq to SQL有一个很棒的扩展,允许我使用DataLoadOptions ...
来定义它var dlo = new DataLoadOptions();
dlo.LoadWith<StagingPattern>( p => p.StagingPatternEntities );
dlo.LoadWith<StagingPatternEntity>( e => e.StagingPatternAddresses );
dlo.LoadWith<StagingPatternAddress>( a => a.StagingPatternAddressFields );
但是,这不适用于上下文DbSets。您将其设置为SQL数据库的LoadOptions。如果有人对这个问题有一个优雅的解决方案,我将不胜感激。
肯特