我有以下方法:
private async Task<Request> UpdateRequest(string id, RequestOutcome outcome)
{
var request = Db.Request.Where(r => r.Id.ToString().Equals(id)).First();
request.DateLastRead = DateTime.Now;
request.DateConcluded = request.DateLastRead;
request.Outcome = (int) outcome;
Db.Entry(request).State = EntityState.Modified;
if (await Db.SaveChangesAsync() <= 0) return null;
return outcome == RequestOutcome.Accept ? request : null;
}这是由以下人员调用的:
public ActionResult Accept(string id)
{
var request = UpdateRequest(id, RequestOutcome.Accept);
if (request.Result != null)
{
var c = request.DateConcluded;
}
}request != null吗?当我这样做的时候,我经常收到一个警告,那就是表达式总是正确的。发布于 2015-12-20 22:22:42
您正在运行synchronously. 异步代码。
必须在方法之前使用await来异步运行您的方法--这将为您处理获取任务的结果。
如果同步运行代码,则必须得到任务的结果。
对于异步:
public async Task<ActionResult> Accept(string id)
{
var request = await UpdateRequest(id, RequestOutcome.Accept);
if (request!= null)
{
var c = request.DateConcluded;
}
}用于同步
public ActionResult Accept(string id)
{
var request = UpdateRequest(id, RequestOutcome.Accept).Result;
if (request != null)
{
var c = request.DateConcluded;
}
}https://stackoverflow.com/questions/34386478
复制相似问题