我正在研究一個asp.net mvc5 web應用程序+實體框架6.我想在我的應用程序中有一個存儲庫模型類。目前我正在採用這種方法來實現異步操作方法和異步存儲庫模型類。在我的asp.net mvc5 web應用程序中寫入異步庫方法
例如我有以下庫保存方法: -
public class Repository
{
private Entities t = newEntities();
public async Task Save()
{
await t.SaveChangesAsync();
}
這我從我的操作方法如下呼籲: -
Repository repository = new Repository();
public async Task<ActionResult> GetResourceByName(string resourcename)
{
await repository.Save();
}
所以這是一個正確的做法?因爲我做了以下內容: -
我定義庫方法作爲任務&也操作方法任務。所以我應該把它們都作爲Task(s)。?
我在動作方法(調用repo方法時)和存儲庫上使用了兩次
await
?那麼這些await
是多餘的?
//請注意,這只是它只是用來保存模型庫方法的簡單的預報,但我問的是方法本身,因爲我將使用更復雜的這種方法儲存庫的方法..
我完全意識到「火與遺忘」。但我仍然沒有明白爲什麼我需要在我的行動方法中等待。例如,如果我用這個「await repository.Save()」替換爲「repository.Save()// no await」,那麼通過defualt asp.net mvc將不會繼續執行,除非得到結果。因爲repo方法使用await「await t.SaveChangesAsync();」那麼它應該等到保存完成後,這是否正確?換句話說,動作方法將不會繼續執行,除非「await t.SaveChangesAsync();」是完整的,所以爲什麼我需要等待和已經等待的方法! –
這不是真的。如果你不等待它不會等待,你不會知道呼叫的結果... – Aram