gpt4 book ai didi

ormlite-servicestack - 使用 ormlite 服务堆栈进行热切加载

转载 作者:行者123 更新时间:2023-12-04 01:15:13 31 4
gpt4 key购买 nike

这是 Entity Framework :

var department = _context.Departments
.Include(dep => dep.Employees.Select(emp => emp.ContactTypes))
.SingleOrDefault(d => d.Id == departmentId);

在这里,我希望返回一个部门,其中包含所有相关员工和每位员工的所有联系人类型。

这是 ormlite 服务堆栈:

我不知道。当我查看文档/样本时: https://github.com/ServiceStack/ServiceStack.OrmLite

他们写:

Right now the Expression support can satisfy most simple queries with a strong-typed API. For anything more complex (e.g. queries with table joins) you can still easily fall back to raw SQL queries as seen below.


我看到有一个 JoinSqlBuilder 类,但我认为它不能返回嵌套集合。

也许我想要的是不可能的,但也许我可以做一个妥协,比如让所有员工都获得部门 ID。然后我在内存中 foreach 员工并获取某个员工 ID 的所有联系人类型。创建层次结构和分配列表仍然是我的工作。

但我希望有一个更短的解决方案。

当查询返回一个具有 3 个平面属性的对象(动态?):Department、Employees、ContactTypes 并将这些属性分配给我的 DTO 时,这也很好。

最佳答案

好的,请不要将此作为明确的答案,而更多地只是我对这种情况的看法(我不太使用服务堆栈)但是......

多年前我第一次开始使用 EF 时,我遇到了类似的情况,就是无法加载引用。像您一样,我面临着必须自己枚举各个集合并为 ORM 应该能够轻松处理的操作编写大量额外代码的可能。

我最终做的是使用自动映射器,它基本上将我无处不在的所有多行循环减少到单行映射语句。

当然,我仍然必须为每个链接的属性做一个映射语句,但它减少了我必须编写的代码,更重要的是让我开始运行,直到 EF 改进,或者我找到了更好的做事方式。

让我强调一下,我不是提出这个作为答案,而且评论有点大,我只是建议将您的想法转向不同的方向,这可能有助于更好的解决方案浮出水面。

关于ormlite-servicestack - 使用 ormlite 服务堆栈进行热切加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20645954/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com