Performance 使用EF4.1查询树结构时的最佳性能
这是一个非常常见的问题,但我在谷歌上也找不到一个好的答案 我有一个标准的树结构Performance 使用EF4.1查询树结构时的最佳性能,performance,tree,entity-framework-4.1,traversal,Performance,Tree,Entity Framework 4.1,Traversal,这是一个非常常见的问题,但我在谷歌上也找不到一个好的答案 我有一个标准的树结构 身份证 父ID 名字 外国人身份证 我的第一次查询尝试 return db.Tree .Where(t => t.ForeignKeyId == xxx && t.Parent == null).SingleOrDefault(); 这将导致对数据库进行N*2选择。对于非常小的树非常慢,对于大树超时 有没有什么好方法可以加快EF4.1的树遍历速度 编辑:这一个更好一
- 身份证
- 父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();
试试这个:
return db.Tree
.Where(t => t.ForeignKeyId == xxx && t.ParentId == null)
.SingleOrDefault();