Entity framework core ef7接受字符串路径的DbSet.Include运算符

Entity framework core ef7接受字符串路径的DbSet.Include运算符,entity-framework-core,Entity Framework Core,EF6有一个DbSet.Include重载,它接受一个字符串参数,该参数表示要在查询结果中返回的相关对象的点分隔列表。它对于在多级对象图中加载实体非常有用。例如: var order = await _dbContext.Orders .Include(o => o.Customer) .Include("OrderDetails.Product") // dot-delimited path .SingleOrDefaultAsync(o => o.Orde

EF6有一个DbSet.Include重载,它接受一个字符串参数,该参数表示要在查询结果中返回的相关对象的点分隔列表。它对于在多级对象图中加载实体非常有用。例如:

var order = await _dbContext.Orders
    .Include(o => o.Customer)
    .Include("OrderDetails.Product") // dot-delimited path
    .SingleOrDefaultAsync(o => o.OrderId == id);
这将返回相关的订单详细信息,并通过生成连接OrderDetail和Product表的SQL语句来填充每个详细信息的Product属性

我正在寻找使用EF7实现这一点的方法,但我没有看到接受字符串路径参数的DbSet.Include重载。EF7是否提供了一种方法来实现与EF6API相同的结果


另外,我刚刚注意到这个问题是公开的,看起来它可能解决了我的问题。

您跟踪这个场景是正确的。还有一些设计会议笔记总结了EF7-.

中提供的API,从beta7开始使用:
客户。包括(c=>c.Contact)。然后包括(c=>c.Address)
在6中,我仍然会使用强类型的
。包括(o=>o.OrderDetails.Product)