none
System.Data.EntityException (was not handled in user code) RRS feed

  • Pergunta

  • Olá estou trabalhando com Entity framework e agora após a leitura de uma planilha .xls estou passando preeenchendo uma lista do tipo 

    List<tbFornecedorLista> que é uma tabela e estou percorrendo a planilha usando connection String OLEdb, quando eu percorro e preencho a lista, eu passo a mesma para um método chamado GravarDaPlanilha(List<tbFornecedorLista) objetoEnviado)

     protected void GravarDaPlanilha(List<tbFornecedorLista> listas)
            {
                try
                {
                    foreach (tbFornecedorLista lista in listas)
                    {
                        if (Convert.ToInt32(ddlcodFornecedor.SelectedValue).ToString() == null)
                        {
                            lblAvisoExcel.Text = "<font size='2' color='red'>Selecione a Lista do Fornecedor Antes </font>";
                            break;
                        }
                        tbFornecedorLista obj = new tbFornecedorLista()
                        {
                            codFornecedor = Convert.ToInt32(ddlcodFornecedor.SelectedValue),
                            produtor = lista.produtor,
                            classificacao = lista.classificacao,
                            aoc = lista.aoc,
                            qtd = lista.qtd,
                            tamanho = lista.tamanho
                        };
    
                        new Negocios.FornecedorLista().Salvar(obj);
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }

    E dai o método Savar recebe o obj e salva de acordo com o seguinte método:

    public void SalvarDaPlanilha(tbFornecedorLista listaFornecedor)
            {
                try
                {
                    if (listaFornecedor.EntityState == System.Data.EntityState.Detached)
                    {
                        db.AddTotbFornecedorLista(listaFornecedor);
                        listaFornecedor.dataCadastro = DateTime.Now;
                    }
                    listaFornecedor.dataUpdate = DateTime.Now;
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    throw;
                }
            }

    Só que dispara o seguinte erro:

    New transaction is not allowed because there are other threads running in the session.

    Como eu faço para a achar essa thread que esta em execução?

    quinta-feira, 14 de março de 2013 13:06

Todas as Respostas

  • O contexto (db) é estático? onde você instanciou ele?

    Spartans! Tonight we dine in Hell!

    quinta-feira, 14 de março de 2013 14:07
  • è uma aplicação MVC ele esta subdividido em camadas, estou usando a instancia

    winestockEntities db = new winestockEntities(); 

    em um diretorio de chamado Negócios , eles se conversam e estou conseguindo ter a visualização do banco e das tabelas, mas parece que tem um outro processo concorrendo junto com o meu input, eu queria saber como localizar essa thread e dar um pause nela

    quinta-feira, 14 de março de 2013 14:52
  • Ele me da essa mensagem:

    New transaction is not allowed because there are other threads running in the session.

    Alguem ja passou por isso ??

    quinta-feira, 14 de março de 2013 19:30