Boa tarde a todos.
Estou com um problema ao utilizar o Entity Framework.
Estou desenvolvendo uma aplicação pequena para controle de atividades onde tenho o seguinte relacionamento, entre outros:
Demanda ------- Sistema
N .. 1
Quando tento inserir uma demanda com um sistema já existente, ocorre o seguinte erro: "
An entity object cannot be referenced by multiple instances of IEntityChangeTracker".
Estou usando uma implementação em n camadas, com facade/DAL, onde na DAL crio métodos básicos, como abaixo:
DemandaDAO
public bool? inserir(Demanda _objeto) |
{ |
try |
{ |
using (AtividadeEntities2 db = new AtividadeEntities2()) |
{ |
db.AddToDemanda(_objeto); |
return db.SaveChanges() > 0; |
} |
} |
catch (Exception) |
{ |
return null; |
} |
} |
SistemaDAO
public Sistema recuperar(short _id) |
{ |
try |
{ |
using (AtividadeEntities2 db = new AtividadeEntities2()) |
{ |
var resultado = db.Sistema.Where(s => s.IdSistema == _id).First(); |
return resultado; |
} |
} |
catch (Exception) |
{ |
return null; |
} |
} |
e na camada de apresentação faço isso:
AtividadeFacade fachada = new AtividadeFacade(); |
|
Demanda objNovo = new Demanda() |
{ |
Ordem = 2, |
DataAtribuicao = DateTime.Now, |
GrauComplexidade = (byte)TipoComplexidade.Alta, |
Prioridade = (byte)TipoPrioridade.Alta, |
Descricao = "Teste de Demanda 2", |
Resumo = "Demanda de Teste 2", |
Sistema = fachada.recuperarSistemaPorID(1); |
}; |
|
bool? daoResult = fachada.inserir(objNovo); |
Então, quando passa pelo db.SaveChages(), ocorre aquele erro q coloqui acima.
Algúem aí tem alguma idéia do que causa esse erro?
Desde já agradeço.
Fabio