2011-05-11 37 views
43

Estoy usando asp .net mvc 3, y tengo un problema con una entidad que contiene 2 claves principales, cuando intento insertar datos en la tabla.Clave primaria múltiple con asp .net mvc 3

public class LineItem 
    { 
     [Key] 
     public int OrderId { get; set;} 
     [Key] 
     public int LineNum { get; set;} 
     public string ItemId { get; set;} 
     public int Quantity { get; set;} 
     public decimal UnitPrice { get; set; } 

    } 

cuando intento insertar Tengo este error:

No se puede determinar primario compuesto ordenamiento clave para el tipo 'ApplicationMVC3.Models.LineItem'. Utilice ColumnAttribute o el método HasKey para especificar un pedido de claves primarias compuestas .

Que alguien me ayude !!

Respuesta

70

Suponiendo que se trata de una clave compuesta, ya que no puede tener 2 claves principales ... El mensaje de error le dice exactamente qué hacer, es decir, agregar un pedido. Puede hacer esto agregando [Column(Order = 0)] y [Column(Order = 1)] a sus columnas clave.

Para su ejemplo:

public class LineItem 
    { 
     [Key][Column(Order = 0)] 
     public int OrderId { get; set;} 
     [Key][Column(Order = 1)] 
     public int LineNum { get; set;} 
     public string ItemId { get; set;} 
     public int Quantity { get; set;} 
     public decimal UnitPrice { get; set; } 

    } 
+3

Gracias por su ayuda, añado este [Key] [Columna (Orden = 0)] public int OrderId {get; establecer;} [Clave] [Columna (Pedido = 1)] public int LineNum {get; establecer;} y el problema se resolvió – Sarroura

+5

utilizando System.ComponentModel.DataAnnotations.Schema; – Trevor

Cuestiones relacionadas