代码之家  ›  专栏  ›  技术社区  ›  Matt Sherman

使用Linq-to-SQL预加载而不使用连接

  •  2
  • Matt Sherman  · 技术社区  · 14 年前

    像许多人一样,我在尽可能保持代码简单易读的同时,努力从我的应用程序中挤出最好的性能。我正在使用linqtosql,并尽可能地保持数据层的声明性。

    我假设SQL调用是最昂贵的操作。因此,我尽量减少它们的数量,但尽量避免难以优化的复杂查询。

    DataLoadOptions 使用我的DataContext——它的目标是通过预加载相关实体来最小化查询的数量(也就是说,急加载和慢加载。)

    问题:Linq使用连接来实现目标。和所有事情一样,这是一种权衡。我得到的查询越来越少,但是那些连接的查询更加复杂和昂贵。进入SQL Profiler可以清楚地说明这一点。

    所以,我想在Linq有一个选择 无连接预加载

    我有一个 Persons 桌子,安 Items PersonItems 表提供多对多关系。当装载一个集合的人,我想有他们所有的人格和项目急切地加载以及。

    每一个都是一个快速的firehose类型查询。从长远来看,它将允许可预测的、网络规模的性能。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Simon    13 年前