none
ID en Herencia de Clases RRS feed

  • Pregunta

  • Hola, con respecto a:

    public class persona
     public property id as integer
     public property nombre as string
    end class
    
    public class usuario Inherits persona
     public property login as string
    end class

    Esta es la estructura de mis tablas en BD:

    - personal (id PK serial, nombre varchar)

    - usuario (id PK serial, id_persona FK integer, login varchar)

    Pregunta: En VB NET, aplicando la herencia cuando intancie la clase usuario ¿la propiedad ID representará el ID de persona o viceversa?, sea el caso que fuera como obtendré el identificador de la otra tabla.

    jueves, 24 de julio de 2014 15:07

Respuestas

  • hola

    pero vas a persistir cada hrencia en una tabla diferente ? o lo haras todo en la misma

    porque hay varias formas de implementar una herencia

    si es en diferentes tabla el id o generas cuando insertas en "persona" despues en "usuario" usas ese mismo id ya que la relacion entre las tablas es uno a uno

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 24 de julio de 2014 19:38

Todas las respuestas

  • hola

    pero vas a persistir cada hrencia en una tabla diferente ? o lo haras todo en la misma

    porque hay varias formas de implementar una herencia

    si es en diferentes tabla el id o generas cuando insertas en "persona" despues en "usuario" usas ese mismo id ya que la relacion entre las tablas es uno a uno

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 24 de julio de 2014 19:38
  • Hola,

    El que exista una relación entre tablas en tu base de datos relacional (SQL Server por ejemplo) no es igual o semejante a que exista herencia. Ten cuidado con eso, sin embargo lo que buscas hacer con C# de ejemplo (solo traducelo a VB) se diferencia de la siguiente manera

    Según la forma en como implantes la herencia en tu código se obtendrá el Id deseado por ejemplo:

    public class Personal {

    public Guid Id { get; set; }

    public Personal()

    {

     Id = Guid.NewGuid();

    }

    }

    //Así obtienes el Id del personal

    public class Usuario : Personal{

    public Usuario () : this() {} // si quieres puedes quitar el  : this() pues no es necesario hacer el llamado explícito.

    }

    //asi obtienes el id del usuario

    public class Personal ...

    public virtual Guid Id {} ...

    public class Usuario : Personal {

    public override Guid Id { get; set; }

    public Usuario(){

    Id = Guid.NewGuid();

    }

    }

    Saludos,

    jueves, 24 de julio de 2014 21:54