J'écris une application ASP.net MVC3 en utilisant Entity Framework Code First et SqlCe4.Contrainte unique avec EFCodeFirst et SqlCe4
J'ai conçu plusieurs modèles, et j'en ai trouvé un qui s'avère intéressant. Voilà ce que j'ai jusqu'à présent:
public class Preference
{
public int PreferenceId { get; set; }
[Required]
public int StudentId { get; set; }
public virtual Student Student { get; set; }
[Required]
public int PresentationId { get; set; }
public virtual Presentation Presentation { get; set; }
[Required]
public int Rank { get; set; }
}
Je cependant besoin d'une contrainte ou un index unique, parce que pour un élève en particulier, je veux qu'ils doivent avoir une liste de préférences, mais le PresentationId doit être unique pour chaque étudiant. Existe-t-il un moyen de le faire via Code First ou un attribut de validation? Cela ressemble à la descente d'une relation many-to-many avec l'objet Preference en tant qu'intermédiaire, pour ajouter la propriété Rank. Cependant, je n'arrive pas à trouver comment m'assurer que les valeurs sont uniques. Est-ce que la meilleure façon de vraiment ajouter manuellement un index unique à la base de données en dehors de EF?
j'utilisais actuellement la construction dans initialiseur: 'Database.SetInitializer (nouveaux DropCreateDatabaseIfModelChanges ());' Cependant, en essayant de mettre en œuvre votre solution, il ne parvient pas à compiler à la ligne contenant ModelMatchesDatabase() –
mandreko
Cette réponse a fonctionné pour moi et est dans ma version de production actuellement – Yablargo