Estoy utilizando Entity Framework con el código primero. Tengo una tabla que no superará las 100 filas y me gustaría utilizar el tipo de datos byte
(tinyint
en SQL Server) como la clave principal.Uso de byte como el tipo de datos de la clave principal
Esto es lo que tengo hasta ahora:
[Key]
public byte Id { get; set; }
El problema es cuando Entity Framework crea la base de datos, no está estableciendo la propiedad de especificación de identidad que permite a las filas incremento automático en el inserto.
Si cambio el tipo de datos a Int16
(smallint
en SQL Server) todo funciona perfectamente.
¿Hay alguna manera de decirle a Entity Framework que configure la propiedad de incremento automático o puede un byte no ser utilizado como la clave principal con Entity Framework primero?
¿Por qué restringirías tu base de datos de esta manera? Si solo son pocas filas, el espacio adicional no duele. – delnan
@delnan, sí, ¿por qué no hacerlo un varchar (100) ** ';-)' **. Siempre debe elegir el tipo de datos más restrictivo correcto disponible, especialmente para un PK. Si usa este PK como FK en una tabla con 50 millones de filas y agrega un índice, habrá una diferencia. El tamaño de la columna afecta más que el espacio en disco, solo piense en la memoria caché y cuánto desperdicia para un error de selección de tipo de datos trivial. Además, si su aplicación se asusta y trata de insertar un valor de salida o rango, fallará. –