¿Cómo configurar la columna de identidad clave en Entity Framework 7?

entity-framework-core

Pregunta

Tengo el siguiente Mapper en Entity Framework 7 RC1 :

  b.ToTable("Categories");
  b.HasKey(x => x.Id);
  b.Property(x => x.Id) ... ??

¿Cómo hacer Id y columna de identidad en EF 7 RC1?

El equivalente de SQL es:

  b.ToTable("Categories");
  b.HasKey(x => x.Id);
  b.Property(x => x.Id) ... ??

He leído que sería así:

  b.ToTable("Categories");
  b.HasKey(x => x.Id);
  b.Property(x => x.Id) ... ??

Pero en EF7 RC1 no encuentro ForSqlServer (). Yo encuentro

  b.ToTable("Categories");
  b.HasKey(x => x.Id);
  b.Property(x => x.Id) ... ??

Respuesta aceptada

Puedes configurar explícitamente una columna de identidad llamando.

b.Property(x => x.Id).UseSqlServerIdentityColumn();

También vale la pena señalar: identidad es el patrón de generación de valor predeterminado que se utiliza con las claves primarias. El uso de secuencias es opcional.


Respuesta popular

La respuesta proporcionada por natemcmaster es correcta. Puede definir con fluentAPI o también puede usar Anotación de datos [Key] para definir Clave principal.

Sin embargo, hay varias formas de definir el valor de identidad en EF Core. Puede utilizar la identidad (predeterminada), la secuencia y el patrón HiLo con secuencia. La identidad es por defecto. De hecho, no tiene que definirlo como columna de identidad si el nombre de su propiedad termina con Id o <typeName> Id. EF Core por convención configura una propiedad llamada Id o <typeName> Id como la clave de una entidad.

Y la razón para tener el nombre del método de extensión a partir de ForSqlServer es que EF Core es compatible con muchos proveedores de bases de datos. Y la funcionalidad para estos proveedores es ligeramente diferente, por lo que puede especificar un comportamiento diferente para la misma propiedad según el proveedor que se utilice.

Lea este artículo para obtener más información sobre el uso de Sequcence con EF Core y HiLo con EF core .




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué