设置非常标准。使用SQL Server连接字符串创建视图和存储库。将存储库传递给视图模型,并在视图模型的构造函数上传递我从存储库调用的集合。一切正常,直到我尝试使用async / await组合异步进行,但现在我在调用存储库的集合时遇到错误“在创建模型时无法使用上下文”。
旧工作代码:
void FillPeopleList()
{
PeopleList = _repository.GetPeople();
}
新破码:
async void FillPeopleList()
{
await Task.Run(()=>
{
PeopleList = _repository.GetPeople(); // Error
});
}
答案 0 :(得分:10)
EF不是线程安全的。
您不能在多个线程上使用相同的上下文。