Fórum Dificuldades com EntityFramework #430257

03/12/2012

0

    public class UF : Entity
    {       
        public string Nome { get; set; }
    }

    public class Cidade : Entity
    {
        public string Nome { get; set; }
        public virtual UF UF { get; set; }
    }


Quando tento incluir um registro de cidade com uma UF já existente ele Cria novamente outra UF.

var uf = new UF() { Id = 1, Nome = "CE" };
var cidade = new Cidade() { Nome = "Iguatu", UF = uf };

repoCidade.Add(cidade);


Lembrando que já existe um registro no banco de Dados UF com (Id: 1 e Nome: CE) mas ele criar outra UF (Id: 2 e Nome: CE)

PS: Nesse caso eu não quero utilizar a propriedade int UFId e também não quero puxar o registro UF novamente do meu banco para salvá-lo.


No meu caso é que na minha View meu objeto Cidade é JSON:
{
   Nome: "Fortaleza",
   UF: {
       Nome: "CE"
   }
}


e quando converto novamente para objeto C# ele tenta criar um novo registro UF.
Allangomessl

Allangomessl

Responder

Posts

03/12/2012

Moisés Gonçalves

Você tem que antes verificar se a UF existe, se possível com uma subrotina.
Caso exista, utilize-a, do contrário crie outra.
Responder

Gostei + 0

03/12/2012

Allangomessl

era isso que eu tava tentando evitar, não queria ir no banco novamente.
tentei mudar a propriedade State no DBContext para Dettach mesmo assim não deu certo.

mas valeu a dica acho que a melhor forma possível é essa mesmo.
Responder

Gostei + 0

03/12/2012

Allangomessl

apesar de ele não ir sempre no banco mas se no caso o objeto não estivesse carregado ainda teria uma perca de performance principalmente se o servidor não tiver muito recurso de memória.
Responder

Gostei + 0

03/12/2012

Allangomessl

Ele força que tenha a propriedade UFId.

por que quando altero a UF na hora que eu do stop no servidor e o carrego novamente ele traz o valor da UF Antiga.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar