我有以下EF Linq查询:
var face = de.Faces.OrderBy(f => f.id).Skip(recordNumber)
.FirstOrDefault(fd => fd.FuzzyHash != null);
应该做什么,但失败的是:
recordNumber
FuzzyHash
个
醇>
有人可以修复查询并向我解释修复 - 我做错了什么?
答案 0 :(得分:4)
您需要删除FuzzyHash
为空的所有记录。
var face = de.Faces.Where(r => null != r.FuzzyHash).OrderBy(f => f.id).Skip(recordNumber)
.FirstOrDefault();
答案 1 :(得分:3)
EF Linq的运作方式就像你在逻辑上想出这个问题一样。
我需要从Faces的有序列表中获取第n条记录,其中某些列不为空。
首先,获取非空列的Faces列表,然后顺序,然后跳过,然后获取记录。
var face = de.Faces.Where(fd => fd.FuzzyHash != null).OrderBy(f =>
f.id).Skip(recordNumber).FirstOrDefault();
答案 2 :(得分:3)
当前查询将跳过N条记录,然后获取具有FuzzyHash
的第一条记录。
您要做的是首先过滤记录以仅包含具有var face = de.Faces
.Where(fd => fd.FuzzyHash != null)
.OrderBy(f => f.id)
.Skip(recordNumber) //shouldn't this be recordNumber - 1?
.FirstOrDefault();
的记录,然后跳过N个记录,如下所示:
is_enabled = True if (cfg and cfg.get('enabled')) else False