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'來確保任何異步操作已完成。任何實例成員不保證是線程安全的。
我提出了來自兩個不同客戶端的請求,所以上下文應該不同。應該....
我不知道如何解決它。我讀了很多,我的代碼似乎是正確的。
的問題是,爲什麼拋出這個錯誤?我不明白
感謝您的建議幫助。