none
Duda tablas relacionadas EF RRS feed

  • Pregunta

  • Hola.

    tengo este modelo de base de datos, trabajo en capas y utilizo EF con C#, quiero mostrar los datos de dos tablas relacionadas en un datagridview, este es mi modelo

     

    utilizo este codigo proporcionado por LeandroTuttini(a quien agradezco) en el hilo:

    http://social.msdn.microsoft.com/Forums/es-ES/50f495b0-0c4f-4796-a2c4-358f777c5796/devolver-datos-de-tablas-relacionadas-con-linq-to-entities-y-c?forum=vcses#c445ebb7-f1f8-4d04-91de-f33b5c7530e3

    public class continenteExtendido
            {
                public int id_continente { get; set; }
                public string name_continte { get; set; }
                public string pais { get; set; }
            }

    public List<continenteExtendido> listado_dgv() { 
    using(conexxx cnn= new conexxx()){
    var listado = cnn.continente.Include("pais")
    .Select(x=> new continenteExtendido()
    {
    id_continente = x.id_continente,
    name_continte = x.name_continente,
    pais = x.pais.name_pais
    });
    return listado.ToList();   
    }}

    pero me da este error, podria indicarme por favor la causa?  



    pabletoreto

    lunes, 22 de septiembre de 2014 16:08

Respuestas

  • ok y si pasa el mouse o analizas el intellisense que clase menciona cuando escribes "pais" ?

    es el mismo que aparece cuando usas cnn.pais

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta pabletoreto martes, 23 de septiembre de 2014 16:27
    lunes, 22 de septiembre de 2014 17:48

Todas las respuestas

  • hola

    si analizar la propiedad "pais" de x de que tipo lo define ? porque alli veo que menciona un "Clase_Datos", pero esta de donde sale

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 22 de septiembre de 2014 16:15
  • hola

    si analizar la propiedad "pais" de x de que tipo lo define ? porque alli veo que menciona un "Clase_Datos", pero esta de donde sale

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    si, tengo tres capas, donde realizo la seleccion de los datos es una libreria de clases: la clase_datos y esta tiene una capa llamada datos, este es el codigo

    namespace Clase_Datos{
        public class Datos{

            public class continenteExtendido{
                public int id_continente { get; set; }
                public string name_continte { get; set; }
                public string pais { get; set; }
            }

            public List<continenteExtendido> listado_dgv(){
                using (conexxx cnn = new conexxx()){
                    var listado = cnn.continente.Include("pais")
                                    .Select(x => new continenteExtendido()
                                    {
                                        id_continente = x.id_continente,
                                        name_continte = x.name_continente,
                                        pais = x.pais.name_pais
                                    });

                    return listado.ToList();
                }}

     luego desde la capa de negocios lo llamo asi(creo aqui tambien habria problema)

                

      public List<continenteExtendido> listado_dgv()
            {
                Datos clase = new Datos();
                return clase.listado_dgv();

            }

    este problema tengo en la capa negocio

    al final desde la capa de presentacion utilizo este codigo

    private void User_Interface_Load(object sender, EventArgs e){
                DGV.AutoGenerateColumns = false;
                Negocio business = new Negocio();
                DGV.DataSource = business.listado_dgv();

            }

    así va mi practica, gracias cualquier ayuda.


    pabletoreto

    lunes, 22 de septiembre de 2014 16:30
  • hola

    >>luego desde la capa de negocios lo llamo asi(creo aqui tambien habria problema)

    pero las entidades que defines no las referencias desde la capa de negocio ?

    porque si la clase continenteExtendido lo defines como public deberias poder verla desde negocio

    ---

    si en la capa de datos usas

    cnn.pais.name_pais

    te lo reconoce?

    porque entiendo que desde el contexto deberias poder acceder a la entidad de paises

    sino lo reconoce que propiedades lista de pais ? porque quizas lo haya definido con otro nombre o con mayusculas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 22 de septiembre de 2014 16:44
  • hola

    >>luego desde la capa de negocios lo llamo asi(creo aqui tambien habria problema)

    pero las entidades que defines no las referencias desde la capa de negocio ?

    porque si la clase continenteExtendido lo defines como public deberias poder verla desde negocio

    ---

    si en la capa de datos usas

    cnn.pais.name_pais

    te lo reconoce?

    porque entiendo que desde el contexto deberias poder acceder a la entidad de paises

    sino lo reconoce que propiedades lista de pais ? porque quizas lo haya definido con otro nombre o con mayusculas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    si Leandro, si me reconoce las entitades, por ejemplo puedo utilizar

     

     var lista = cnn.pais.ToList();

    o bien:

    var lista = from datos in cnn.pais
                            select new { datos.id_pais, datos.name_pais };

    y pues he dejado que el EF maneje las entidades, no he creado una nueva librería de clases para las conexiones, la que tu me pasaste la deje en la capa datos, no se si también deberé referenciar esta class continenteExtendido desde la capa negocio

     public class continenteExtendido{
                public int id_continente { get; set; }
                public string name_continte { get; set; }
                public string pais { get; set; }
            }


    pabletoreto

    lunes, 22 de septiembre de 2014 16:54
  • >>si me reconoce las entitades, por ejemplo puedo utilizar

    si inspeccionas el tipo cuando escribes

    string nombrepais = cnn.continente.First().pais.name_pais

    en la propeidad "pais" que tipo define? es el mismo que aparece cuando usas  cnn.pais

    >>la que tu me pasaste la deje en la capa datos, no se si también deberé referenciar esta class continenteExtendido desde la capa negocio

    entiendo que desde la capa de negocio referencia a la de datos por lo que se deberia tener acceso a esa clase

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 22 de septiembre de 2014 17:08
  • >>si me reconoce las entitades, por ejemplo puedo utilizar

    si inspeccionas el tipo cuando escribes

    string nombrepais = cnn.continente.First().pais.name_pais

    en la propeidad "pais" que tipo define? es el mismo que aparece cuando usas  cnn.pais

    >>la que tu me pasaste la deje en la capa datos, no se si también deberé referenciar esta class continenteExtendido desde la capa negocio

    entiendo que desde la capa de negocio referencia a la de datos por lo que se deberia tener acceso a esa clase

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    hola, cuando escribo en la capa de datos  string nombrepais = cnn.continente.First().pais.name_pais 

    tengo esto


    pabletoreto

    lunes, 22 de septiembre de 2014 17:28
  • ok y si pasa el mouse o analizas el intellisense que clase menciona cuando escribes "pais" ?

    es el mismo que aparece cuando usas cnn.pais

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta pabletoreto martes, 23 de septiembre de 2014 16:27
    lunes, 22 de septiembre de 2014 17:48
  • ok y si pasa el mouse o analizas el intellisense que clase menciona cuando escribes "pais" ?

    es el mismo que aparece cuando usas cnn.pais

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    Si, aunque también tengo acceso a continente y sus campos y a ciudad

    pabletoreto

    lunes, 22 de septiembre de 2014 18:30