Blazor Server с ядром Entity Framework, как асинхронно вызывать методы БД

Я создаю серверное приложение balzor с ядром ASP.net 3.1 и ядром Entity framework. Проблема в том, что, поскольку вызов Db требует времени, чтобы вернуть запись, а в ядре EF нет встроенной асинхронной функции, я решил отложить извлечение строк через несколько секунд после загрузки страницы. Но проблема в том, что мой HTML не обновляется после запуска кода. Без задержки задачи я могу видеть данные. Почему он не обновляет мой пользовательский интерфейс / HTML?

HTML

@if (_allRequestForHelp.Count > 0)
{
   @foreach (var item in _allRequestForHelp)
    {

   }
}



protected override void OnInitialized()
    {

        telemetryClient.TrackPageView("RegisterForHelp");

       // want to run this async other page hangs until the data comesback
        Task.Delay(2000).ContinueWith(t => loadPreviousRequestForHelps());

        base.OnInitialized();
    }



private async Task loadPreviousRequestForHelps()
    {

            if (appStateInfo.IsAuthenticated)
            {
                _allRequestForHelp =  (from b in dbContext.RequestHelp where b.UserID.ToString() == appStateInfo.UserID orderby b.UTCDateCreated descending select b).ToList();
                StateHasChanged();

            }
    }

person user3799325    schedule 11.05.2020    source источник


Ответы (1)


Я использовал асинхронную версию OnInitialized

защищенная задача переопределения async OnInitializedAsync ()

все остальное остается таким же, и теперь он работает

person user3799325    schedule 11.05.2020