0
我在ASP.NET 4.6的工作与EF 6到一个新的网络API 2项目,我读了很多文章,介绍了异步/的await模式,这是清楚的是,对于很多请求,这种模式由于很多原因而提高了性能。 所以我决定第一次使用它。 在这里决定创建一个Biz项目和一个DAL项目的例子。实体框架6异步/ AWAIT失败并行请求
这是控制器的方法:在控制器构造
[HttpGet]
public async Task<bool> CheckValueValidity(string value, string type)
{
return await _accountsBiz.CheckValueTypeValidity(value, type);
}
我实例BIZ对象。
这是BIZ:
public async Task<bool> CheckValueTypeValidity(string value, string type)
{
bool isValid = false;
switch (type.ToLower())
{
case "email":
isValid = await _accountsRepository.CheckEmailValidity(value);
break;
case "username":
isValid = await _accountsRepository.CheckUserNameValidity(value);
break;
}
return isValid;
}
我实例在BIZ构造函数库。
最后,这是DAL方法:和所有它似乎很好地工作,直到我做的两人同时要求,其中之一返回正确的值
public async Task<bool> CheckEmailValidity(string email)
{
using(MyEntities db = new MyEntities())
{
return await db.AspNetUsers.CountAsync(u => u.Email == email) > 0 ? false : true;
}
}
说其他
在先前的异步操作完成之前,在此上下文中开始第二个操作。在调用此上下文中的另一个方法之前,请使用'await'来确保任何异步操作已完成。任何实例成员不保证是线程安全的。
我提出了来自两个不同客户端的请求,所以上下文应该不同。应该....
我不知道如何解决它。我读了很多,我的代码似乎是正确的。
的问题是,为什么抛出这个错误?我不明白
感谢您的建议帮助。