O que poderia causar muitas exceções de acesso a dados usando o código EF primeiro em um RoleProvider personalizado?

Meu provedor de função se parece com a classe abaixo (abreviada). Eu estou executando no IIS Express e SQL 2012 Express, do VS 2012, e recebo uma infinidade de exceções aparentemente aleatórias neste código de provedor de função.

public class Educ8RoleProvider : RoleProvider
{
    private readonly Educ8DbContext _dbContext = new Educ8DbContext();
    private readonly Authorization _authorization;
    public Educ8RoleProvider()
    {
        _authorization = new Authorization(_dbContext);
    }
    public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
    {
        try
        {
            base.Initialize(name, config);
        }
        catch (Exception ex)
        {
            ErrorSignal.FromCurrentContext().Raise(ex);
            throw;
        }
    }
    public override bool IsUserInRole(string username, string roleName)
    {
        return GetRolesForUser(username).Any(r => r.ToLower() == roleName);
    }
    public override string[] GetRolesForUser(string username)
    {
        return _authorization.GetRolesForMember(username).Select(r => r.Name).ToArray();
    }
}

Aqui está uma amostra do meuAuthorization classe:

public class Authorization
{
    private readonly Educ8DbContext _dbContext;
    private readonly IMemberRepository _memberRepository;
    private readonly IRoleRepository _roleRepository;
    private readonly IMemberRoleRepository _memberRoleRepository;
    public Authorization(Educ8DbContext context)
    {
        _dbContext = context;
        _memberRepository = new MemberRepository(_dbContext);
        _roleRepository = new RoleRepository(_dbContext);
        _memberRoleRepository = new MemberRoleRepository(_dbContext);
    }
    public IQueryable<Role> GetRoles()
    {
        return _roleRepository.ListAll();
    }
    public IQueryable<Role> GetRolesForMember(int memberId)
    {
        var roleIds = _memberRoleRepository.ListAll()
            .Where(mr => mr.MemberId == memberId)
            .Select(mr => mr.RoleId);
        return _roleRepository.ListAll()
            .Where(r => roleIds.Contains(r.Id));
    }
}

Eu recebo cerca de duas a três das seguintes exceções a cada hora. Reiniciar o projeto resolve imediatamente o problema, até o próximo.

Não é permitido alterar a propriedade 'ConnectionString'. O estado atual da conexão é fechado.O contexto não pode ser usado enquanto o modelo está sendo criado.O provedor subjacente falhou em Abrir.

Pode ser interessante notar que eu tenho absolutamente zero problemas de acesso a dados em qualquer outro lugar do projeto.

Qualquer sugestão sobre o que pode estar causando isso seria muito bem-vinda.

questionAnswers(1)

yourAnswerToTheQuestion