Foreign Keys (FK) con Entity Framework Code First (.net - C#)

Entity Framework nos da la posibilidad de crear nuestra base de datos, con solo escribir nuestro modelo en lineas de código (Code First=Código Primero).
Una de las funcionalidades que mas se utilizan en las Bases de Datos Relacionales son las Foreign Keys o Claves Foraneas. Estas son utilizadas para relacionar tablas mediante IDs.

Como Entity Framework nos permite utilizar nuestros datos como objetos, tambien nos da la posibilidad de crear estas relaciones muy simplemente.
Para poder llevar a cabo esto, debemos utilizar lo que se llama Data Annotations... vendría a ser algo así como "Notas de Datos". Esto nos permite dar attributos que indican un funcionamiento particular a las variables o propiedades de una clase.

Para este caso, el atributo que  utilizaremos será ForeignKey que se encuentra en el namespace o espacio de nombres System.ComponentModel.DataAnnotations.Schema

El Namespace System.ComponentModel.DataAnnotations.Schema se encuentra dentro del Assemmbly o Ensamblado System.ComponentModel.DataAnnotations en el gac. El atributo ForeignKey se encuentra a partir de la version 4.5 de .net Framework.

El atributo Foreign Key se utiliza para indica como se manejan las claves externas de una variable.
Cuando utilizamos Code First debemos indicar 2 propiedades para que nuestra claves funcionen:

  1. Una variable o propiedad que representa el ID de la clave externa
  2. Una variable o propiedad que representa al Objeto al que referencia esa clave.

Veamos el siguiente ejemplo:

Código 1:
using System.ComponentModel.DataAnnotations.Schema;

namespace HarkDev.Samples.Data.Model
{
    public class Persona
    {
        [Key]
        public int IdPersona { get; set; }
        public string Nombre { get; set; }
        public string Apellido { get; set; }

        // Clave Externa
        [ForeignKey("Pasaporte")]
        public int IdPasaporte { get; set; }

        // Objeto que representa la clave externa.
        [ForeignKey("IdPasaporte")]
        public virtual Pasaporte Pasaporte { get; set; }
    }
    
    public class Pasaporte
    {
        [Key]
        public int IdPasaporte { get; set; }
        public string Numero { get; set; }
        public DateTime FechaEmision { get; set; }
    }
}

En el Código 1 podemos apreciar que se establece primero el campo IdPasaporte, el cual contiene la clave externa a la tabla que queremos referenciar. Con el campo [ForeignKey("Pasaporte")] le indicamos que queremos que lo trate como una Clave Externa y que los datos los utilice en ella priopiedad Pasaporte.


Debemos entender que el parametro indicado en ForeignKey es el nombre de una propiedad, y no el de un objeto o tabla.

Así mismo, en nuestra propiedad Pasaporte, la cual es una referencia del objeto Pasaporte, contiene también el atributo ForeignKey, el cual indica que los datos de esa referencia, deben ser obtenidos desde la propiedad IdPasaporte.

La palabra clave virtual la utilizamos para que Entity Framework haga Lazy Loading con este objeto.

Así nos queda el modelo cuando EntityFramework lo genera a partir de nuestro código:



Saludos y Buena Programación!"

Comentarios

  1. Foreign Keys (Fk) Con Entity Framework Code First (.Net - C) >>>>> Download Now

    >>>>> Download Full

    Foreign Keys (Fk) Con Entity Framework Code First (.Net - C) >>>>> Download LINK

    >>>>> Download Now

    Foreign Keys (Fk) Con Entity Framework Code First (.Net - C) >>>>> Download Full

    >>>>> Download LINK oQ

    ResponderBorrar

Publicar un comentario

Entradas populares