{"No se puede determinar el orden de la clave principal compuesta para el tipo 'Conference_Project.Models.Login'. Use ColumnAttribute (consulte http://go.microsoft.com/fwlink/?LinkId=386388 ) o el método HasKey (consulte http:/ /go.microsoft.com/fwlink/?LinkId=386387 ) para especificar un orden de claves principales compuestas".}
[Table("ConferenceLogin")] public class Login { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long confid { get; set; } [Key] public string emailID { get; set; } [Key] public string registration { get; set; } [Key] public long regNo { get; set; } } Version Used : EntityFramework.6.1.3 And MVC5 Quiero un valor único para esto ( emailID de correo electrónico, registration , número de registro) para establecer todo como clave principal, luego regNo mostró un error
¿Cómo usar múltiples claves primarias con EntityFramework?
Aunque no estoy seguro de la lógica subyacente por la que ocurre este error, tuve el mismo problema con un proyecto en el que estaba trabajando para la clase. Lo que funcionó para mí fue agregar un decorador de columna (orden) a la etiqueta clave girando
[Key]dentro
[Key, Column(Order = n)]donde n es el índice basado en 0 de la clave en cuestión.
Bajo esta luz, su clase debería verse como la siguiente:
[Table("ConferenceLogin")] public class Login { [Key, Column(Order = 0), DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long confid { get; set; } [Key, Column(Order = 1)] public string emailID { get; set; } [Key, Column(Order = 2)] public string registration { get; set; } [Key, Column(Order = 3)] public long regNo { get; set; } }¡Espero que esto funcione para ti tan bien como lo hizo para mí!
Para establecer esa columna de registro como clave principal, debe establecer el tipo de datos nvarchar(50),. nvarchar (128) no le permitirá convertirlo en clave principal