我有这段代码来查找树的根节点:
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();
答案 0 :(得分:10)
这是处理可空值类型时LINQ to Entities中的已知错误。根据相关的Connect issue,这将在下一个版本中修复。
答案 1 :(得分:0)
试试这个
Guid? currentNode = null;
var root = db.RecursiveTrees.Where(x => x.ParentId == currentNode.Value).ToList();