Я работаю над веб-приложением asp.net mvc5 + Entity Framework 6. И я хочу иметь класс модели репозитория внутри моего приложения. В настоящее время я следую этому подходу, чтобы иметь методы асинхронного действия и класс модели асинхронного репозитория.написание async Методы репозитория внутри моего веб-приложения asp.net mvc5
, например, у меня есть следующий репозиторий метод сохранения: -
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 & также способ действий в качестве задачи. поэтому у меня есть оба из них как Задача (ы).?
Я использую
await
дважды по методу действия (при вызове метода репо) и в репозитории? так ли этоawait
избыточным?
// обратите внимание, что это всего лишь простой пример метода репозитория, который используется только для сохранения модели ,, но я прошу о самом подходе, как я буду использовать этот подход в более сложном методы хранения.
Я полностью осведомлен о «Огне и забыл». Но все же я не понял, почему мне нужно иметь ожидание внутри моего действия. например, если я заменил это «ожидание репозитория.Save()» с «repository.Save() // no await», то defualt asp.net mvc не будет продолжать выполнение, если не получит результат. и поскольку метод репо использует ожидание «ждут t.SaveChangesAsync();» то он должен подождать до завершения сохранения, это правильно?другими словами, метод действия не будет продолжать выполнение, если только «ждут t.SaveChangesAsync();» полностью, так почему я должен ждать и уже ожидаемый метод! –
Это неправда. Если вы не ожидаете, что он не будет ждать, и вы не узнаете результат звонка ... – Aram