Entity Framework Core - Master Details 详细信息查询
Entity Framework Core - Master Details Details query
我看到很多 post 展示了如何在 Entity Framework 中执行查询以检索主详细信息数据,如下所示:
IQueryable<myobj> foo = _context.Foos.Include(x => x.FooDetails).Where(x => x.Id == fooId);
但我必须处理一个更难的案例。主细节,其中每个细节都有自己的细节。
类似于:
Foo --> FooDetails --> FooDetailsInfo
这可能吗?如果是,如何?当然存在愚蠢的解决方案,它是使用循环。有没有更聪明的方法来实现这个目标?
我尝试编辑线路代码
IQueryable<myobj> foo = _context.Foos.Include(x => x.FooDetails).Where(x => x.Id == fooId);
但是没写出有用的东西
是的,这是可能的。在 Include
之后你可以调用 ThenInclude
var foo = _context.Foos
.Include(x => x.FooDetails)
.ThenInclude(fd => fd.FooDetailsInfo)
.Where(x => x.Id == fooId);
我看到很多 post 展示了如何在 Entity Framework 中执行查询以检索主详细信息数据,如下所示:
IQueryable<myobj> foo = _context.Foos.Include(x => x.FooDetails).Where(x => x.Id == fooId);
但我必须处理一个更难的案例。主细节,其中每个细节都有自己的细节。 类似于:
Foo --> FooDetails --> FooDetailsInfo
这可能吗?如果是,如何?当然存在愚蠢的解决方案,它是使用循环。有没有更聪明的方法来实现这个目标?
我尝试编辑线路代码
IQueryable<myobj> foo = _context.Foos.Include(x => x.FooDetails).Where(x => x.Id == fooId);
但是没写出有用的东西
是的,这是可能的。在 Include
之后你可以调用 ThenInclude
var foo = _context.Foos
.Include(x => x.FooDetails)
.ThenInclude(fd => fd.FooDetailsInfo)
.Where(x => x.Id == fooId);