EF + async =在创建模型时不能使用上下文?

Man*_*uel 3 c# wpf entity-framework

设置非常标准.使用SQL Server连接字符串创建视图和存储库.将存储库传递给视图模型,并在视图模型的构造函数上传递我从存储库调用的集合.一切正常,直到我尝试使用async/await组合异步进行,但现在我在调用存储库的集合时收到错误"在创建模型时不能使用上下文".

旧工作代码:

void FillPeopleList()
{
  PeopleList = _repository.GetPeople();
}
Run Code Online (Sandbox Code Playgroud)

新破码:

async void FillPeopleList()
{
  await Task.Run(()=>
  {
    PeopleList = _repository.GetPeople(); // Error
  });
}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 10

EF不是线程安全的.

您不能在多个线程上使用相同的上下文.