EF 5 - Le nombre de valeurs de clé primaire transmis doit correspondre au nombre de valeurs de clé primaire définie sur l'entité
Je suis tombé sur ce message d'erreur lors de l'utilisation EF5. Vous demandez-vous si quelqu'un a la réponse à cette question.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Budget.Data
{
[Table("BudgetItems")]
public class BudgetItemRepository
{
[Column("MdaCode")]
public int MDACode { get; set; }
[Column("PersonalCost")]
public double PersonnelCost { get; set; }
[Column("OverheadCost")]
public double OverheadCost { get; set; }
[Column("RecurrentCost")]
public int RecurrentCost { get; set; }
[Column("CapitalCost")]
public double Capital { get; set; }
public double Allocation { get; set; }
[Column("BudgetYear")]
public String BudgetYear { get; set; }
[Column("RecordCreatedDate")]
public DateTime DateCreated { get; set; }
[Column("RecordLastModifiedDate")]
public DateTime LastModifiedDate { get; set; }
public virtual IList<BudgetItemRepository> budgetitems { get; set; }
public virtual IList<BudgetLineItemRepository> budgetlineitems { get; set; }
[Column("BudgetItemID")]
public int Id { get; set; }
}
}
Et où avez-vous obtenu ce message d'erreur? Il fallait appeler une méthode pour obtenir cette erreur.
OriginalL'auteur Kobojunkie | 2012-07-13
Vous devez vous connecter pour publier un commentaire.
Vous ne déclarez pas la clé primaire de l'entité. Vous faites cela en cochant la colonne de clé primaire avec la Touche [} attribut. En supposant que c'est l'Id de la propriété, le code devrait ressembler à:
weblogs.asp.net/scottgu/archive/2010/07/16/...
Si oui ou non cela fonctionne dépend de la façon dont vous configurez votre DataContext (et j'ai oublié que la convention, désolé). L'autre possibilité est que le tableau est un composé de la clé primaire qui ne correspond pas à l'Id unique de la colonne.
C'est exactement mon cas. Trouver comment répondre à cette situation en ce moment... les pointeurs?
Je crois que de mettre l'attribut de Clé sur chaque colonne, qui participe à la clé fonctionne. Vous pouvez aussi le faire avec la configuration de code: HasKey(k=>k.firstKeyProperty, k.secondKeyProperty);
OriginalL'auteur Jeff Siver