Sta*_*eff 4 .net c# wpf entity-framework
在我的应用程序中,我有多个选项卡,使用Entity Framework 5显示数据库中的数据.
当我在选项卡之间切换时,我开始通过任务自动加载数据,因为我不希望GUI变得无响应(此任务大约需要5-10秒):
public async void LoadData()
{
[...]
await Task.Run(
() =>
{
Measurements = DataContext.Measurements
.Where(m => m.MeasureDate = DateTime.Today)
.ToList();
});
[...]
}
Run Code Online (Sandbox Code Playgroud)
但是当任务运行时,用户仍然可以更改为另一个选项卡,如果他这样做,我想取消EF查询和/或任务.
实现这一目标的最佳方法是什么?
在EF5中,由于它不接受,因此无法取消查询CancellationToken
.你可以在这里阅读更多相关内容:实体框架取消长时间运行的查询
但是,EF6确实支持它.
它具有所有方法的异步版本.因此ToList()
可以ToListAsync()
用于长时间运行的查询,它确实支持CancellationToken
.