【发布时间】:2009-10-23 15:56:40
【问题描述】:
使用 Linq-to-SQL 我想预取一些数据。
1) 常见的解决方案是处理 DataLoadOptions,但在我的架构中它不起作用,因为:
- 必须在第一次查询之前设置选项
- 我使用的是 IOC,所以我不直接实例化 DataContext(我无法在实例化时执行代码)
- 我的 DataContext 在 Web 请求期间保持不变
2) 我看到了另一种可能性,基于 loading data 及其子项 在方法中,然后仅返回数据(因此子项已经加载)@ 987654321@
然而,在我的架构中,它不能不工作:
- 我的查询从我的存储库级联出来,可供许多将添加子句的服务使用
- 我使用接口,linq-to-sql 对象的具体实例不会离开存储库(是的,您可以使用接口和添加子句)
- 我的存储库是通用的
是的,这种架构非常复杂,但它非常酷,因为我可以玩乐高之类的代码;)
我的问题是:预取数据的其他可能性是什么?
【问题讨论】:
标签: linq-to-sql architecture inversion-of-control datacontext prefetch