primary - Al usar Entity Framework Code First CTP5, ¿cómo creo una columna de clave primaria que sean INTs y no sean columnas de identidad?
key data annotation c# (3)
Al usar Entity Framework Code First CTP5, ¿cómo creo una columna de clave primaria que sean INTs y no sean columnas de identidad?
Preferiblemente no usar atributos.
Esa respuesta no funcionó para mí (en EF 4.1).
Para que esto funcione, agregué el atributo DatabaseGenerated a mi columna clave:
public class FacebookUser
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long FacebookId { get; set; }
// ...
}
Espero que esto ayude a alguien.
Pequeño cambio
public class User
{
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ID { get; set; }
// Rest of the code
}
Si está creando sus entidades utilizando la interfaz fluida en lugar de usar atributos sobre las propiedades, puede usar la clase DatabaseGenerationOption (de EntityFramework.dll, en el espacio de nombres System.ComponentModel.DataAnnotations). No lo he probado, pero así es como se vería:
modelBuilder
.Entity<Foo>()
.Property(f => f.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);