EntityFramework4.0を使用したWebアプリケーションがあります。残念ながら、大量のユーザーがアプリケーションにアクセスすると、EFがエラーをスローします 。基になるプロバイダーがOpenで失敗しました
以下はコードスニペットです。
//DAL
public IQueryable<EmployeeEntity> GetEmployeeDetail()
{
DatabaseEntities ent = new DatabaseEntities(this._connectionString);
IQueryable<EmployeeEntity> result = from employee in ent.EmployeeEntity
select employee;
return result;
}
上記のコードはIQuerableを返すことに注意してください。
- 上記のパターンに問題があり、例外が発生する可能性がありますか?
- Entity Frameworkは、いつ、どのようにdb接続を閉じる/開くか、またどのくらいの期間保持するかを決定しますか?
- 上記のエラーはどのようなシナリオで発生しますか?
- EFの接続プールの最大数と構成方法を教えてください。
- オープンとクローズを明示的に指定する必要がありますか
- 上記の問題を解決するための最良の方法は以下のコードですか?
public IQueryable<EmployeeEntity> GetEmployeeDetail()
{
using (DatabaseEntities ent = new DatabaseEntities(this._connectionString))
{
IQueryable<EmployeeEntity> result = from employee in ent.EmployeeEntity
select employee;
return result.ToList().AsQuerable();
}
}