45 votes

Plusieurs clés primaires avec asp .net mvc 3

Je suis en train d'utiliser asp .net mvc 3, et j'ai un problème avec une entité qui contient 2 clés primaires, lorsque j'essaie d'insérer des données dans la table.

 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; }

    }

lorsque j'essaie d'insérer, j'obtiens cette erreur :

Impossible de déterminer l'ordre des clés primaires composites pour le type 'ApplicationMVC3.Models.LineItem'. Utilisez l'attribut Column ou la méthode HasKey pour spécifier un ordre pour les clés primaires composites.

Quelqu'un peut-il m'aider s'il vous plaît !!

74voto

verdesmarald Points 6632

En supposant qu'il s'agit en réalité d'une clé composite, puisque vous ne pouvez pas avoir 2 clés primaires... Le message d'erreur vous indique exactement quoi faire, à savoir ajouter un ordre. Vous pouvez le faire en ajoutant [Column(Order = 0)] et [Column(Order = 1)] à vos colonnes clés.

Pour votre exemple :

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; }

    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X