我有以下代码来查找树的根节点:
Guid? currentNode = null;
var root = db.RecursiveTrees.Where(x => x.ParentId == currentNode).ToList();
这个查询返回0个结果。
如果我运行这个查询,我得到预期的行返回:
var root = db.RecursiveTrees.Where(x => x.ParentId == null).ToList();
为什么第一个查询不工作(使用最新版本的实体框架)?
编辑:处理:
List<RecursiveTree> root;
if (nodeid == null)
root = db.RecursiveTrees.Where(x => x.ParentId == null).ToList();
else
root = db.RecursiveTrees.Where(x => x.ParentId == new Guid(nodeid)).ToList();
这是LINQ中处理可空值类型时的一个已知错误。根据相关的Connect问题,这将在下一个版本中修复。
try this
Guid? currentNode = null;
var root = db.RecursiveTrees.Where(x => x.ParentId == currentNode.Value).ToList();