一次执行一步代码

时间:2014-12-08 16:37:02

标签: c# asp.net linq

以下代码不会填充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 );

1 个答案:

答案 0 :(得分:0)

这种行为有何不同?

还不清楚为什么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);

}