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

时间:2012-05-03 17:47:00

标签: c# wpf entity-framework

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

旧工作代码:

void FillPeopleList()
{
  PeopleList = _repository.GetPeople();
}

新破码:

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

1 个答案:

答案 0 :(得分:10)

EF不是线程安全的。

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