【问题标题】:Best performance when querying tree structure with EF4.1使用 EF4.1 查询树结构时的最佳性能
【发布时间】:2011-11-01 15:41:59
【问题描述】:

这是一个非常常见的问题,但我在谷歌上也找不到很好的答案。

我有一个标准的树结构,

  • 身份证
  • 父母身份
  • 姓名
  • 外键ID

我第一次尝试查询

    return db.Tree
        .Where(t => t.ForeignKeyId == xxx && t.Parent == null).SingleOrDefault();

这将导致 N*2 选择数据库。漂亮的小树很慢,大树超时。

EF4.1 有什么好方法可以加快树遍历的速度吗?

编辑:这个效果好一点

    var eager = db.Tree.Include(t => t.Children).Where(t => t.ForeignKeyIdd == xxx).ToList();

    return eager
        .Where(t.Parent == null).SingleOrDefault();

【问题讨论】:

    标签: performance tree entity-framework-4.1 traversal


    【解决方案1】:

    试试这个:

    return db.Tree
            .Where(t => t.ForeignKeyId == xxx && t.ParentId == null)
            .SingleOrDefault();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多