C# 如何确保在第一个addPhoto行完成后调用第二个product addPhoto方法?
**您好,我需要确保product addphoto first方法的Id大于第二个picture addphoto方法(back pic)在转到下一行之前,我如何等待执行该行 我试图创建一个异步方法,但我得到了错误,因为该方法不能返回void和async。有什么帮助吗**C# 如何确保在第一个addPhoto行完成后调用第二个product addPhoto方法?,c#,.net,entity-framework,async-await,C#,.net,Entity Framework,Async Await,**您好,我需要确保product addphoto first方法的Id大于第二个picture addphoto方法(back pic)在转到下一行之前,我如何等待执行该行 我试图创建一个异步方法,但我得到了错误,因为该方法不能返回void和async。有什么帮助吗** var product = new Product { Name = item.Name,
var product = new Product
{
Name = item.Name,
Description = item.Description,
};
product.AddPhoto(item.PictureUrl, pictureFileName);
product.AddPhoto($"back/{item.SKU}$back.png", pictureFileNameBack);
context.Products.Add(product);
}
await context.SaveChangesAsync();
}
public void AddPhoto(string pictureUrl, string fileName, bool isMain = false)
{
var photo = new Photo
{
FileName = fileName,
PictureUrl = pictureUrl
};
if (_photos.Count == 0) photo.IsMain = true;
_photos.Add(photo);
}
您好,请查找下面更新的代码,如果方法不返回任何值,则应为任务,否则为该类型的任务
var product = new Product {
Name = item.Name,
Description = item.Description
};
product.AddPhoto(item.PictureUrl, pictureFileName);
product.AddPhoto($"back/{item.SKU}$back.png", pictureFileNameBack);
context.Products.Add(product);
await context.SaveChangesAsync();
public async Task AddPhoto(string pictureUrl, string fileName, bool isMain = false) {
var photo = new Photo {
FileName = fileName,
PictureUrl = pictureUrl
};
if (_photos.Count == 0) photo.IsMain = true;
_photos.Add(photo);
}
而不是:
product.AddPhoto(item.PictureUrl, pictureFileName);
product.AddPhoto($"back/{item.SKU}$back.png", pictureFileNameBack);
context.Products.Add(product);
}
await context.SaveChangesAsync();
}
尝试:
提供所有必要的代码。它看起来像是半代码。Addphoto方法在做什么?代码呈现的主要方法是什么?修复大括号和缩进。这应该是您要做的第一件事,而不是最后一件事。使用Task作为返回类型,就像同步方法中的void一样。我已经添加了该方法,但是如果我将其设置为异步,则表示我不能等待void,除非您在其间调用saveChanges。如果您选择了asynchronous,那么在该方法中会执行什么异步处理?
product.AddPhoto(item.PictureUrl, pictureFileName);
context.Products.Add(product);
}
await context.SaveChangesAsync();
product.AddPhoto($"back/{item.SKU}$back.png", pictureFileNameBack);
await context.SaveChangesAsync();
}