私は、ツリーのルートノードを見つけるために、このコードを持っている:このlinqクエリでnullable Guidを使用しないのはなぜですか?
Guid? currentNode = null;
var root = db.RecursiveTrees.Where(x => x.ParentId == currentNode).ToList();
このクエリは、0の結果を返します。
私はこのクエリを実行すると、私は期待の行が返されます:
var root = db.RecursiveTrees.Where(x => x.ParentId == null).ToList();
なぜ(エンティティフレームワークの最新バージョンを使用して)最初のクエリは動作しませんか?
EDIT:
回避策:
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();
感謝してみてください - 私はそれはまだEF 6.1.3で修正されていないNULL可能のGuid – woggles
のフィルタリングを回避するためにコードを変更しますが。それが修正された場合、それは再び壊れています。 – David