使用 Linq-to-SQL 我想预取一些数据。
1)常见的解决方案是处理DataLoadOptions,但在我的架构中它不起作用,因为:
- 必须在第一个查询之前设置选项
- 我正在使用 IOC,所以我不直接实例化 DataContext(我无法在实例化时执行代码)
- 我的 DataContext 在 Web 请求期间是持久的
2)我看到了另一种可能性,基于在方法中加载数据及其子项,然后只返回数据(所以子项已经加载)在这里看一个例子
尽管如此,在我的架构中,它不能不起作用:
- 我的查询被级联出我的存储库,并且可以被许多将添加子句的服务使用
- 我使用接口,linq-to-sql 对象的具体实例不会离开存储库(是的,您可以使用接口和添加子句)
- 我的存储库是通用的
是的,这个架构很复杂,但是很酷,因为我可以玩乐高之类的代码;)
我的问题是:预取数据的其他可能性是什么?