【发布时间】:2016-07-18 20:24:12
【问题描述】:
我刚刚开始使用 EF7 (CORE),并且正在努力寻找以下内容的正确实现。假设我有一个包含多个子表的表,这些子表又具有孙表(而这些表又具有外键表)。如果我想访问所有内容,我需要这样的东西
TABLE_A.Include(c => c.TABLE_B).ThenInclude(co => co.TABLE_C)
.ThenInclude(coi => coi.TABLE_D)
.ThenInclude(coia => coia.TABLE_E)
.Include(c => c.TABLE_B).ThenInclude(co => co.TABLE_F)
.ThenInclude(coa => coa.TABLE_G)
.ThenInclude(coaAcc => coaAcc.TABLE_H)
.ThenInclude(coaAccInt => coaAccInt.TABLE_D)
.ThenInclude(coaAccIntAgent => coaAccIntAgent.TABLE_E)
现在我了解了链接包含以包含我的所有子表的必要性……但我查看了它在幕后触发的 SQL 及其触发的 11 个 SQL 语句。这似乎非常低效。
这是最好的方法吗?我现在收到了一个新的要求,要向 TABLE_B 添加 3 个子表……所以我需要更多的包含……因此在幕后运行更多的选择。
我了解我正在做的事情背后的逻辑......并且了解 EF7 目前不支持延迟加载,但是当我可以编写一个存储过程时,这似乎不是一种非常有效的做事方式一口气搞定。
对于此类事情或我不了解如何使用 EF7 来完成我需要的事情,是否有最佳实践?
任何帮助或指导将不胜感激!
谢谢
【问题讨论】: