Saltar al contenido

Campo de incremento automático de Entity Framework, ese no es el Id.

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ó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *