我有一个数据库,并且表中有很多条目。我想使用blazor在网页上显示这些条目。
我尝试使用context.tableName.Load()
和context.tableName.Local
加载条目,并使用
@foreach(var entry in localList){
<p>@entry.Name</p>
}
那很好..但是它首先从数据库中加载所有数据,最后完成后,它开始呈现页面/结果。
我想显示立即加载的结果,随着加载的继续在网页上弹出响应。有什么想法可以实现吗?
谢谢!
答案 0 :(得分:0)
您描述的内容与IAsyncEnumerable<>
的内容匹配。
只是为了好玩,我对标准启动程序做了一些修改:
在WeatherForecastService中:
public async IAsyncEnumerable<WeatherForecast> GetForecastAsync(DateTime startDate)
{
var rng = new Random();
for (int i = 0; i < 77; i++)
{
yield return new WeatherForecast
{
Date = startDate.AddDays(i),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)]
};
await Task.Delay(100);
}
}
,并在FetchData.razor页面中:
List<WeatherForecast> forecasts = new List<WeatherForecast>();
protected override async Task OnInitializedAsync()
{
await foreach (var forecast in ForecastService.GetForecastAsync(DateTime.Now))
{
forecasts.Add(forecast);
StateHasChanged();
}
}
请注意,这不是一种非常有效的数据移动方式,但在某些情况下可能会起作用。