Esta división ha sido probado por expertos para que tengas la seguridad de la veracidad de nuestra esta noticia.
Solución:
Puede anotar esa propiedad con DatabaseGenerated(DatabaseGeneratedOption.Identity)
. EF permite solo una columna de identidad por tabla.
public class Foo
[Key]
public Guid Id get; set;
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Bar get; set;
La publicación anterior pensó que compartiría lo que encontré con Entity Framework 6.1.3.
Creé una biblioteca de capa de datos simple usando C# y .NET Framework 4.6.1, agregué una clase de servicio/repositorio simple, una clase de contexto de código primero y apunté mi archivo web.config a una base de datos SQL Express 2014 local.
En la clase de entidad agregué lo siguiente attribute constructor a la columna Id:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id get; set;
Luego creé una nueva migración escribiendo lo siguiente en Visual Studio 2015 Package Manager:
Añadir-Migración
Asigne un nombre a la migración y luego espere a que se cree la clase DbMigtation. Edite la clase y agregue la siguiente operación CreateTable:
CreateTable(
"dbo.Article",
c => new
Id = c.Guid(nullable: false, identity: true),
Title = c.String(),
Content = c.String(),
PublishedDate = c.DateTime(nullable: false),
Author = c.String(),
CreateDate = c.DateTime(nullable: false),
)
.PrimaryKey(t => t.Id);
}
La tabla anterior es un ejemplo de la key El punto aquí es la siguiente anotación del constructor:
nullable: false, identity: true
Esto le dice a EF que especifique la columna como no nulabe y desea configurarla como una columna de identidad para que EF la genere.
Vuelva a ejecutar la migración con el siguiente comando:
update-database
Esto ejecutará la clase de migración soltando la tabla primero (método Down()) y luego creando la tabla (método Up()).
Ejecute sus pruebas unitarias y / o conéctese a la base de datos y ejecute una consulta de selección, debería ver su tabla en su nueva forma, agregue algunos datos excluyendo la columna Id y debería ver nuevos Guid (o cualquier tipo de datos que elija) para ser generado .
No se te olvide compartir este post si te ayudó.