C# 用于从数据库表中选择下一个id的Linq查询

C# 用于从数据库表中选择下一个id的Linq查询,c#,linq,C#,Linq,是否有任何方法可以在不知道其“Id”的情况下从数据库表中选择下一个对象 数据库表看起来像这样,它被称为Jobs: Id | ScheduleId | DateHappened | Status 1 | 150 | 2014-05-30 | Done 2 | 150 | 2014-06-10 | Done 3 | 150 | 2014-06-13 | Done 我试图获取每个作业的Id,并使用它将其插入日志表中。我知道这是一种“违反规则

是否有任何方法可以在不知道其“
Id
”的情况下从数据库表中选择下一个对象

数据库表看起来像这样,它被称为
Jobs

Id | ScheduleId | DateHappened | Status
 1 |   150      | 2014-05-30   | Done
 2 |   150      | 2014-06-10   | Done
 3 |   150      | 2014-06-13   | Done
我试图获取每个
作业的Id
,并使用它将其插入日志表中。我知道这是一种“违反规则”的要求,但在现阶段,我不能做出任何大的改变


我知道在这种情况下,我可以使用
.first()
.last()
函数来选择第一个和最后一个元素,但是介于两者之间的任何元素呢?

似乎您需要所有作业的所有ID:

db.Jobs.Select(j => j.ID).ToList()

似乎您需要所有作业的所有ID:

db.Jobs.Select(j => j.ID).ToList()

你可以试试这个:

var ids = db.Jobs.Select(x=>x.Id);


你可以试试这个:

var ids = db.Jobs.Select(x=>x.Id);


您似乎假设作业是按
id
的顺序返回的,这可能是一个很大的假设

但是,您还提到了
.First()
.Last()
,并标记了“Linq”,因此我假设您已经以某种方式从数据库中获取了数据。我假设您有一个名为
queryResult
IQueryable
,您正在调用
.First()
.Last()
来获取此答案的剩余部分

如果您只想查看每条记录,那么可能根本不需要Linq:只需使用
foreach

foreach (var row in queryResult)
{
    ....
}
var ids = queryResult.Select(x => x.Id);
foreach (var id in ids) 
{
    ....
}
或者,如果您不需要所有方法,您可以使用Linq的
.Skip()

或者,如果您只想将所有ID记录为单个项目,则可以使用Linq的
Select
获取ID列表:

queryResult.Select(x => x.Id)
如果您只对ID感兴趣,但需要单独循环,则可以潜在地使用此
的结果。选择
与其他解决方案结合使用,以提高代码的效率。如果您使用的是带有延迟执行(如EF)的ORM,那么像这样的查询比提取整个数据库然后使用
foreach

foreach (var row in queryResult)
{
    ....
}
var ids = queryResult.Select(x => x.Id);
foreach (var id in ids) 
{
    ....
}

您似乎假设作业是按
id
的顺序返回的,这可能是一个很大的假设

但是,您还提到了
.First()
.Last()
,并标记了“Linq”,因此我假设您已经以某种方式从数据库中获取了数据。我假设您有一个名为
queryResult
IQueryable
,您正在调用
.First()
.Last()
来获取此答案的剩余部分

如果您只想查看每条记录,那么可能根本不需要Linq:只需使用
foreach

foreach (var row in queryResult)
{
    ....
}
var ids = queryResult.Select(x => x.Id);
foreach (var id in ids) 
{
    ....
}
或者,如果您不需要所有方法,您可以使用Linq的
.Skip()

或者,如果您只想将所有ID记录为单个项目,则可以使用Linq的
Select
获取ID列表:

queryResult.Select(x => x.Id)
如果您只对ID感兴趣,但需要单独循环,则可以潜在地使用此
的结果。选择
与其他解决方案结合使用,以提高代码的效率。如果您使用的是带有延迟执行(如EF)的ORM,那么像这样的查询比提取整个数据库然后使用
foreach

foreach (var row in queryResult)
{
    ....
}
var ids = queryResult.Select(x => x.Id);
foreach (var id in ids) 
{
    ....
}

“我正在尝试获取每个
作业的Id
”-那么您不需要选择所有项目吗?“我正在尝试获取每个
作业的Id
”-那么您不需要选择所有项目吗?使用
foreach
实际上通过得很好,我不敢相信我之前没有想到它..使用
foreach
实际上通过得很好,我不敢相信我之前没有想到它。。