一次执行一个步骤的代码

本文关键字:代码 执行 一次 一个 | 更新日期: 2023-09-27 18:33:28

下面的代码不会填充 NavigateUrl 属性,因为应该在该步骤之前的所有计算(代码执行)都不会完成。这可能与 LINQ 查询有关。

这是 .NET 3.5,因此没有可用的任务。

我希望每个步骤在进入下一步之前完成。页面提交似乎在等待所有这些步骤完成之前完成。我应该改用 ado.net 来获取数据吗?数据检索是否会更快并避免此问题?

int JobID = new SLICDataContext()
    .JobRequests
    .Where(x => x.JobRequestID == JobRequestID)
    .Select(x => x.JobID.GetValueOrDefault(0))
    .Single();
int reactiveJobId = new SLICDataContext()
    .Jobs
    .Where(x => x.JobID == JobID)
    .Select(x => x.ReactiveJobID.GetValueOrDefault(0))
    .Single();
lnkDocument.NavigateUrl = string.Format("/HeadOffice/ReactiveJobs/DocumentsUpload.aspx?ReactiveJobID={0}", reactiveJobId );

一次执行一个步骤的代码

这行为是否不同?

目前还不清楚为什么会出现reactiveJobId人口;你不会在字符串格式中使用它,而且似乎没有任何有意义的副作用。

using (var db = new SLICDataContext())
{
    int JobID = db
    .JobRequests
    .Single(x => x.JobRequestID == JobRequestID)
    .JobID.GetValueOrDefault(0);
    int reactiveJobId = db
    .Jobs
    .Single(x => x.JobID == JobID)
    .ReactiveJobID.GetValueOrDefault(0);
    lnkDocument.NavigateUrl = 
      string.Format("/HeadOffice/ReactiveJobs/DocumentsUpload.aspx?ReactiveJobID={0}",
                    JobID);
}