int не содержит определения ошибки getAwaiter - PullRequest
0 голосов
/ 16 февраля 2020

Я внедряю CRUD в asp. net ядре. Я создал метод, подобный приведенному ниже:

  public async Task<int> AccessAPIApplicantHistoryDouble(int t)
    {
        var task = APIApplicantHistoryLog(t);
        int result = await task;
        return result;

    }

  private int APIApplicantHistoryLog(int myAPIApplicantId)
    {
        APIApplicantHistoryDto mydto = new APIApplicantHistoryDto();

          _context.Set<ApiApplicantHistory>().Add(new ApiApplicantHistory
            {
                ApiApplicantId = myAPIApplicantId,
                Date = null,
                SentResponseType = 0,
                UnconfirmedReason = 0,
                LastReqStatus = 0,
                Description = "",
                IdDeleted = false   // This field should be totally omited from SQL server
            }) ;
             _context.SaveChangesAsync();


            var myArrayList = new List<int>();

            var result = from x in _context.ApiApplicantHistory where x.ApiApplicantId == myAPIApplicantId
                         select new { x.Id };

            foreach (var i in result)
                myArrayList.Add(i.Id);

            return myArrayList.Max(); 
         }

В строке ожидания возникает ошибка, подобная следующей:

enter image description here

Я буду признателен, если кто-нибудь предложит мне решение этой проблемы.

1 Ответ

1 голос
/ 17 февраля 2020

Когда вы вызываете асинхронные методы, такие как SaveChangesAsync, ваш код должен await результат:

await _context.SaveChangesAsync();

Как только ваш код использует await там , C# компилятор выдаст вам сообщение об ошибке, отметив APIApplicantHistoryLog метод async и изменив тип его возврата с int на Task<int>. Как только вы это сделаете, await в вашем другом методе будет работать правильно.

...