2011-02-08 3 views
3

Quelqu'un peut-il donner un sens à cette erreur? ont été détectésEntity Framework 4 & Code First CTP 5 - Clé manquante

Une ou plusieurs erreurs de validation lors de la génération de modèle:

System.Data.Edm.EdmEntityType:: EntityType 'Adresse' n'a pas de clé définie. Définissez la clé pour cet EntityType. System.Data.Edm.EdmEntitySet: EntityType: Les adresses EntitySet sont basées sur le type d'adresse sur lequel aucune clé n'est définie.

J'ai cette entité définie:

public class Address 
{ 
    [Key] 
    public int ID; 

    [Required] 
    [MinLength(1)] 
    [MaxLength(200)] 
    public string Address1 { get; set; } 

    [MinLength(1)] 
    [MaxLength(200)] 
    public string Address2 { get; set; } 

    [Required] 
    [MinLength(1)] 
    [MaxLength(10)] 
    public string Zip { get; set; } 

    [MinLength(1)] 
    [MaxLength(100)] 
    public string Province { get; set; } 

    public virtual US_State State { get; set; } 

    [Required] 
    public virtual Country Country { get; set; } 
} 

Ma question est la suivante: comment l'erreur de sens pour une classe que les deux a une annotation de données d'attributs clés, ainsi que le nom classique d'identification pour son PK.

Je pense que cette classe satisfait toutes les règles nécessaires pour qu'une entité significative soit générée par elle.

+4

Pourquoi votre «ID» est-il un champ et non une propriété? –

+0

@Caig: parce que j'ai raté cela ;-) –

Répondre

8

Comme Craig mentionné, faire une propriété ID résoudra votre problème.

public int ID { get; set; } 

En outre, vous n'avez pas besoin de l'attribut [Key] sur ID, il sera reconnu comme identificateur d'objet (par exemple clé primaire) par le code premier basé sur les conventions.

+0

Doh. Bien sûr, tu as raison! –

Questions connexes