【发布时间】:2014-01-05 21:52:53
【问题描述】:
这是实体框架:
var department = _context.Departments
.Include(dep => dep.Employees.Select(emp => emp.ContactTypes))
.SingleOrDefault(d => d.Id == departmentId);
在这里,我希望返回一个部门,其中包含所有相关员工以及每位员工的所有联系人类型。
这是 ormlite 服务栈:
我不知道。当我查看文档/样本时:https://github.com/ServiceStack/ServiceStack.OrmLite
他们写道:
目前,表达式支持可以通过强类型 API 满足大多数简单查询。对于更复杂的事情(例如,使用表连接的查询),您仍然可以轻松地回退到原始 SQL 查询,如下所示。
我看到有一个 JoinSqlBuilder 类,但我认为它不能返回嵌套集合。
也许我想要的东西是不可能的,但也许我可以做一个妥协,比如让所有员工都获得部门 ID。然后我在内存中查找员工并获取某个员工 ID 的所有联系人类型。创建层次结构和分配列表仍然是我的工作。
但我希望有一个更短的解决方案。
当查询返回一个具有 3 个平面属性的对象(动态?)时,也可以这样做:Department、Employees、ContactTypes 并将这些属性分配给我的 DTO。
【问题讨论】:
-
@Voters 你们所有人都应该去:servicestack.uservoice.com/forums/176786-feature-requests/… 并在那里投票,您最多可以投 3 票,而不是我们可以超过最高功能要求!!!
-
@Voters Cool 有些人已经投票了:p
-
如果你现在检查代码,他们有加载引用和保存引用,但我从不使用它,因为它是版本 4 的功能
-
LoadReference 只是在我的场景中加载员工,而不是联系人类型......它是第一级的简单 ById 获取。