我有以下实体模型:员工有公司,公司有员工。
使用Include语句时,如下所示:
var query = context.Employees.Include(e => e.Company);
query.Dump();
从数据库中正确检索所有相关数据。(在 Company 表上使用 LEFT OUTER JOIN)
问题是当我使用 System.Linq.Dynamic 中的 GroupBy() 按 Company.Name 分组时,由于Include丢失,Employees 缺少 Company 数据。例子:
var groupByQuery = query.GroupBy("new (Company.Name as CompanyName)", "it");
groupByQuery.Dump();
有没有一种方法可以轻松地将“查询”上应用的包含检索为字符串集合,以便我可以将它们包含在动态 GroupBy 中,如下所示:
var groupByQuery2 = query.GroupBy("new (Company, Company.Name as CompanyName)", "it");
groupByQuery2.Dump();
我考虑过使用 ToString() 功能来获取 SQL 命令,如下所示:
string sql = query.ToString();
然后使用 RegEx 提取所有 LEFT OUTER JOINS,但可能有更好的解决方案?