这是一个非常常见的问题,但我无法在谷歌上找到一个好的答案。
我有一个标准的树结构,
我第一次尝试查询
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();
答案 0 :(得分:0)
试试这个:
return db.Tree
.Where(t => t.ForeignKeyId == xxx && t.ParentId == null)
.SingleOrDefault();