Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Fabricio en 3 Mayo 2010, 02:55 am



Título: problema con Entity Framework
Publicado por: Fabricio en 3 Mayo 2010, 02:55 am
Hola estoy haciendo una aplicacion basica de 2 tablas Personas y Paises donde c/persona tiene un pais asociado
el problema que tengo surge cuando quiero modificar una persona o agregar una nueva persona (no hay abm de paises) cuando quiero  asociarle su IdPais me da error
el nombre de la propiedad de navegacion en la tabla Personas del modelo entity se llama Pais
Trabajo en capas hay una capa de datos en donde va el codigo que pegue y una capa de objetos con dos clases Personas y Paises
Personas tiene 3 propiedades Id, NombrePersona y IdPais
Pais tiene 2 propiedades IdPais y NombrePais
Código:
// este es el codigo para modificar
public void Modificar(CapaObjetos.Personas p)
        {
            using (var modifPersona = new PersonasModelo())
            {
                var modif = from pers in modifPersona.Personas.Include("Pais")
                           where pers.Id == p.Id
                           select pers;

                var reg = modif.FirstOrDefault();    
                reg.Nombre = p.Nombre;
                reg.Pais.IdPais = p.IdPais; //error              
                //reg.IdPais = p.IdPais;   // tambien da error              
                modifPersona.SaveChanges();
              
            }
        }

// este es el codigo para agregar
public void Agregar(CapaObjetos.Personas persona)
        {
            using (var datosPersona = new PersonasModelo())
            {
                CapaDatos.Personas newPersona = new CapaDatos.Personas();                
                newPersona.Id = persona.Id;
                newPersona.Nombre = persona.Nombre;                
                newPersona.Pais.IdPais = persona.IdPais;  //error          
                datosPersona.AddToPersonas(newPersona);
                datosPersona.SaveChanges();
            }
        }

saludos y muchas gracias por su ayuda


Título: Re: problema con Entity Framework
Publicado por: MANULOMM en 4 Mayo 2010, 03:17 am
El error esta en que estas modificando el Id del pais de la tabla paises.

Código
  1. reg.Pais.IdPais = p.IdPais; //error  (NO PUEDES MODIFICAR EL IDPAIS DEL PAIS SOLO EL IDPAIS DE LA PERSONA.)            
  2. //reg.IdPais = p.IdPais;   // no deberia darte error siempre y cuando el p.IdPais este en la tabla de Pais
  3.  
  4. newPersona.Pais.IdPais = persona.IdPais;  //error    
  5.  
  6. newPersona.IdPais = persona.IdPais;  //deberia ser asi.
  7.  
  8.  

Atentamente,

Juan Manuel Lombana
Microsoft Student Partner
Microsoft Certified Professional
Medellín - Colombia