3

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

旧工作代码:

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

新破代码:

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

1 回答 1

10

EF 不是线程安全的。

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

于 2012-05-03T17:51:38.503 回答