Problema com EntityFramework - An entity object cannot be referenced by multiple instances of IEntityChangeTracker
Um um projeto onde um dropdownlist é carregado com as seguintes instruções:
var lista = entities.prato.OrderBy(x => x.nome).ToList();
combo.DataTextField = "nome";
combo.DataValueField = "id";
combo.DataSource = lista;
combo.DataBind();
Depois preciso recuperar o item do dropdownlist e utilizar para criação de um registro, para recuperar o item eu utilizo a seguinte linha:
ingrediente i = entities.ingrediente.Find (Convert.ToInt32(combo.SelectedItem.Value));
Quando tempo salvar o registro da seguinte forma:
ingrediente_prato ip = new ingrediente_prato();
ip.prato = (prato)Session["pratoSelecionado"];
ip.ingrediente = i;
entities.ingrediente_prato.Add(ip);
entities.SaveChanges();
é retornado o seguinte erro:
An entity object cannot be referenced by multiple instances of IEntityChangeTracker
Alguém tem alguma sugestão?
var lista = entities.prato.OrderBy(x => x.nome).ToList();
combo.DataTextField = "nome";
combo.DataValueField = "id";
combo.DataSource = lista;
combo.DataBind();
Depois preciso recuperar o item do dropdownlist e utilizar para criação de um registro, para recuperar o item eu utilizo a seguinte linha:
ingrediente i = entities.ingrediente.Find (Convert.ToInt32(combo.SelectedItem.Value));
Quando tempo salvar o registro da seguinte forma:
ingrediente_prato ip = new ingrediente_prato();
ip.prato = (prato)Session["pratoSelecionado"];
ip.ingrediente = i;
entities.ingrediente_prato.Add(ip);
entities.SaveChanges();
é retornado o seguinte erro:
An entity object cannot be referenced by multiple instances of IEntityChangeTracker
Alguém tem alguma sugestão?
Ana Martins
Curtidas 0
Respostas
Celiol.
15/05/2018
Ola nessa linha (ip.prato = (prato)Session["pratoSelecionado"];) que informação esta tentando salvar, pois quando voce usa este codigo ele esta pegando o objeto todo que esta na seção então se você colocar um ponto exemplo: vamos dizer que você quer pegar o codigo do objeto na seção ficaria assim (ip.prato = (prato)Session["pratoSelecionado"].codPrato); ai nao sei como esta sua tabela. veja se é isso que precisa, pois eu faço isso e tive o mesmo problema peao o meu pra ter uma ideia eu tinha que pegar o codigo do cliente na seção para listar as comprar que pertencia ao mesmo ai ficou assim pra pegar o codigo dele repare que e o mesmo do seu so vou mudar pra ter uma base.
meu caso: pegando o codigo do usuario que esta na seção:
codUser = (CLIENTE)Session["cliente"].codCliente;
bem espero que tenha ajudado se resolveu ou continuar o erro so postar ai vejo se posso continuar ajudando abraços. Sucesso.
meu caso: pegando o codigo do usuario que esta na seção:
codUser = (CLIENTE)Session["cliente"].codCliente;
bem espero que tenha ajudado se resolveu ou continuar o erro so postar ai vejo se posso continuar ajudando abraços. Sucesso.
GOSTEI 0