使用皇宫-对-SQL我想要取一些数据。

1)共同解决办法是处理 DataLoadOptions, 但在我的架构,它不会的工作,因为:

  • 选项,必须设定之前先查询
  • 我使用的是国际奥委会,所以我不会直接instanciate的属性(我无法执行代码在instanciation)
  • 我的属性是持久性的持续时间的一个网络的要求

2)我们看到的另一种可能基于 加载数据及其孩子的 在一个方法,然后返回唯一的数据(所以这孩子已经装载) 看到一个例子在这里

尽管如此,在我的架构,它不能工作:

  • 我查询级联出我的储存库,可供许多服务将增加条款
  • 我的工作与接口,具体的实例的皇宫-对-sql对象不要离开储存库(是的,你可以工作与接口,并添加条款)
  • 我的仓库是通用的

是的,这一架构是安静的复杂的,但它很酷因为我可以播放的代码就像乐高;)

我的问题是:什么是的 其他的可能性 预取一个数据?

有帮助吗?

解决方案

在我的程序也许我使用一个变化到你潜在的解决方案,#2.这有点难以解释,但简单:我链和推迟迟缓装载在我的模型,与定义 懒惰的课程 以抽象离LinqToSql特定的不同执行,我利用 IQueryable.福利:

  • 我域模型和业务层向上不一定必须取决于LinqToSql提供者(我可以交换我的DAL用的接口,如果我想)
  • 我的服务的方法可以做返回的完整对象的图表与多个'固定点'懒装使用的类的抽象离开一个特别偷懒加载执行情况-所以我可以使用LinqToSql特定于不同的执行或其他什么东西(eg.佚名代表。再次,参阅 这个答案)
  • 我可以维持 IQueryable 结果我的整个应用程序(即使到用户界面,如果我想要)因此允许无限皇宫查询链接,而无需担心的业绩。

其他提示

我不知道还有其他的可能性,好像你已经把LinqToSql到其限制(我可能是错误的,但是).

我认为你最好的选择在这一点是:

  1. 添加一些"非通用的"方法的应用程序来处理的 具体情况下你想要的/需要预先加载不 使用你的"正常"、"通用"的基础设施对于那些方法。
  2. 使用一个奥姆有更复杂的支持渴望和懒惰的装载。

我找到一个解决方案。我的答案是依赖注射'.

它通常附带IOC,并意味着你可以有你的IOC容器的管理注射类在instanciation.

所有我需要的是注入 CustomDCParameter 上课的时候我instanciate DC。这类中将包含的规则,并构造将适用于所有的人。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top