Inquiridor
Opções de Add do Entity Framework

Pergunta
-
Boa tarde a todos
Gostaria de saber qual a diferença entre os seguintes métodos:
Ex:
FORMA 1 : _entities.AddToOrdens(Ordem)
FORMA 2 : _entities.AddObject("Ordens", Ordem)
FORMA 3 : _entities.Ordens.AddObject(Ordem)
Estou fazendo assim:
Public Void Create(Ordem _ordem)
{ // O objeto _ordem vem os campos (menos o OrdemID) populados da Veiw
// E o controller chama o Método Create(em que estamos) no Model ,
Guid nwGuid = Guid.NewGuid();
_ordem.Cliente = _entities.Clientes.Where(c => c.clienteID == Ordem.clienteID).FirstOrDefault() ;// Ordem(1) tem relacionamento com Cliente(n)
_ordem.OrdemID = nwGuid;
_ordem.DataCad = DateTime.Now;
_entities.AddToOrdens(_ordem);
_entities.SaveChanges(); // O erro acontece ao sair daqui dessa linha
_ordem.OrdenDetalhe.OrdemID = nwGuid;
_ordem.OrdenDetalhe.DataCad = DateTime.Now;
_entities.AddToOrdensDetalhes(_ordem.OrdenDetalhe);
_entities.SaveChanges();
}
Quando dou o SaveChanges da erro:
Cannot insert duplicate key row in object 'dbo.Ordem' with unique index 'UQ_Ordem
Gostaria de saber se estou usando o método certo e de forma certa.
Resumindo. Onde estou errando ?
Obs.:
Estou usando Asp.net MVC 3 com EntityFramework 4 e C#
Ordem e OrdemDetalhes estão relacionadas de 1 para 1
Ordem (principal)
OrdemDetalhes (dependente)
Grato desde Já
Todas as Respostas
-
Amigo, o EF está dizendo que você está tentando inserir uma linha que o ID está duplicado, você ja verificou se esse ID não existe ou se ele por caso não esta como automatico e que talvez não seja nem necessário passar um novo id para ele ?
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :) -
-
vc ja tentou abrir no sql server o indice UQ_Ordem...(O nome ficou incompleto eu acho) para ver qual campo ele se referencia ?
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :) -
Boa tarde de novo Olavo,
Eu dei uma olhada melhor, resumindo o meu problema é que a tabela Ordem tem um relacionamento de 1 para 1 com outra tabela( Movimentos) no qual a tabela ordem tem seu campo Id que é PK e Fk ao mesmo tempo e tem depencia com a tabela movimentos, tô tentando da insert nas duas e da erro na tabela.
grato desde já