Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF 6跳过列为空的所有记录,从结果获取行';N';_C#_Entity Framework_Linq - Fatal编程技术网

C# EF 6跳过列为空的所有记录,从结果获取行';N';

C# EF 6跳过列为空的所有记录,从结果获取行';N';,c#,entity-framework,linq,C#,Entity Framework,Linq,我有以下EF Linq查询: var face = de.Faces.OrderBy(f => f.id).Skip(recordNumber) .FirstOrDefault(fd => fd.FuzzyHash != null); 它应该做什么,但失败的是: 从具有现有模糊灰烬的面获取第n个recordNumber 有人可以修复查询并向我解释修复方法吗?我做错了什么?EF Linq的运行方式与您逻辑思考这个问题的方式非常相似 我需要从一个有序的面列表

我有以下EF Linq查询:

var face = de.Faces.OrderBy(f => f.id).Skip(recordNumber)
              .FirstOrDefault(fd => fd.FuzzyHash != null);
它应该做什么,但失败的是:

  • 从具有现有模糊灰烬的面获取第n个
    recordNumber

  • 有人可以修复查询并向我解释修复方法吗?我做错了什么?

    EF Linq的运行方式与您逻辑思考这个问题的方式非常相似

    我需要从一个有序的面列表中获取第n条记录,其中某些列不为null

    首先,获取非空列面列表,然后排序,然后跳过,然后获取记录

    var face = de.Faces.Where(fd => fd.FuzzyHash != null).OrderBy(f =>
    f.id).Skip(recordNumber).FirstOrDefault();
    

    EF Linq的运行方式很像您逻辑地思考这个问题

    我需要从一个有序的面列表中获取第n条记录,其中某些列不为null

    首先,获取非空列面列表,然后排序,然后跳过,然后获取记录

    var face = de.Faces.Where(fd => fd.FuzzyHash != null).OrderBy(f =>
    f.id).Skip(recordNumber).FirstOrDefault();
    

    您需要删除
    FuzzyHash
    为空的所有记录

    var face = de.Faces.Where(r => null != r.FuzzyHash).OrderBy(f => f.id).Skip(recordNumber)
              .FirstOrDefault();
    

    您需要删除
    FuzzyHash
    为空的所有记录

    var face = de.Faces.Where(r => null != r.FuzzyHash).OrderBy(f => f.id).Skip(recordNumber)
              .FirstOrDefault();
    

    当前查询将跳过N条记录,然后获取具有
    FuzzyHash
    的第一条记录

    您要做的是首先过滤记录,以仅包括具有
    模糊灰烬的记录,然后跳过N条记录,如下所示:

    var face = de.Faces
        .Where(fd => fd.FuzzyHash != null)
        .OrderBy(f => f.id)
        .Skip(recordNumber) //shouldn't this be recordNumber - 1?
        .FirstOrDefault();
    

    当前查询将跳过N条记录,然后获取具有
    FuzzyHash
    的第一条记录

    您要做的是首先过滤记录,以仅包括具有
    模糊灰烬的记录,然后跳过N条记录,如下所示:

    var face = de.Faces
        .Where(fd => fd.FuzzyHash != null)
        .OrderBy(f => f.id)
        .Skip(recordNumber) //shouldn't this be recordNumber - 1?
        .FirstOrDefault();
    

    不是Linq to Entities专家,所以我可能错了,但在我看来,在使用
    Skip()
    之前,您需要过滤具有空值的行。因此,您要查找的可能是
    de.Faces.Where(f=>f.FuzzyHash!=null).OrderBy(f=>f.id).Skip(recordNumber)
    。不是Linq to Entities专家,所以我可能错了,但在我看来,在使用
    Skip()
    之前,您需要过滤具有null值的行。因此,您要查找的可能是
    de.Faces.Where(f=>f.FuzzyHash!=null).OrderBy(f=>f.id).Skip(recordNumber)
    。我认为这应该可以工作,尽管
    FirstOrDefault
    中的过滤器是多余的。我认为这应该可以工作,虽然
    FirstOrDefault
    中的过滤器是多余的。同意
    recordNumber-1
    如果基于1+1用于良好的格式设置(对于其他相同的答案):)recordNumber是基于0的,其中我不使用查询的跳过变量。对,如果
    recordNumber
    是基于零的,那么您应该跳过
    recordNumber
    项。同意
    recordNumber-1
    如果基于1+1用于良好的格式设置(对于其他相同的答案):)recordNumber是基于0的,其中我不使用查询的跳过变量。对,如果
    recordNumber
    是基于零的,那么您应该跳过
    recordNumber
    项。