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, añadí una clase simple de repositorio/servicio, una primera clase de contexto de código y apunté mi archivo web.config a una base de datos local de SQL Express 2014.
En la clase de entidad que añade el siguiente constructor de atributos a la columna de Id:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
Entonces creó una nueva migración escribiendo lo siguiente en Visual Studio 2015 Gestor de paquetes:
Añadir a la migración
Asigne un nombre a la migración y espere a que se cree la clase DbMigtation. Editar la clase y añadir 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 del punto clave aquí es la siguiente anotación constructor:
nullable: false, identity: true
Esto le dice a EF para specifiy la columna como no nullabe y desea establecerlo como una columna de identidad para ser sembrado por EF.
ejecutar de nuevo la migración con el siguiente comando:
update-database
Esto ejecutará la clase de migración de eliminar la tabla primero (método de abajo()), entonces la creación del (método arriba()) mesa.
Ejecute las 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, agregar algunos datos excluyendo la columna Id y ver los nuevos Guid (o cualquier tipo de datos que elija) para ser generado.
He visto DatabaseGeneratedOption.Identity pero tbh He sido flojo y no he leído nada, simplemente asumí que hizo que esa columna sea el campo PKey. Gracias, lo intentaré. – JamesStuddart
¿Esto todavía funcionará con las bases de datos de múltiples propietarios? – amd
@Ahmad No funcionará si cada inquilino tiene su propia semilla – Eranga