Al crear un proyecto con visual studio 2013 que utilice Entity Framework Code First me asaltó la duda de por qué en el modelo no existía en casi ninguna clase la DataAnnotation [Key] que establece que propiedad será la encargada de guardar la clave de la tabla.
Primero hay que indicar que en Entity Framework es absolutamente necesario que cada entidad contenga una clave primaria. En el caso de que no se establezca ninguna clave el generador de la base de datos dará un error en tiempo de ejecución.
Sin embargo si Entity Framework no encuentra la DataAnnotation [Key] irá a buscar una propiedad de la clase que contenga la palabra «Id» (no es case-sensitive) y la asignará automáticamente.
public class Movie { [Required, StringLength(100), Display(Name = "Name")] public string MovieName { get; set; } public int Id { get; set; } }
En el ejemplo anterior a la hora de generar la tabla Movie, Entity Framework entenderá que la propiedad «Id» será la encargada de ser la clave.