2014-09-17 3 views
2

Pour une tâche d'école, je veux faire un petit site Web de type questionnaire où vous pouvez entrer plusieurs questions et les ajouter à un examen.Entité code de code premier objet référence plusieurs objets

Les technologies que j'utilise sont MVC et Entity Framework (code d'abord). Pour les deux, c'est la première fois que je roule seul, sans tutoriels et autres, et il semble que je sois resté coincé dans mon modèle (ceux qui seront utilisés pour la base de données).

Je veux un tableau Exam qui contient plusieurs Questions. Cela, à mon sens, devrait être une collection (la recherche a dit d'utiliser cela, mais je ne suis pas sûr que ce soit correct).

Comment est-ce que je définirais le modèle Exam dans ce cas, de sorte qu'il contienne plusieurs Question objects et puisse également être employé par le Code First d'Entity Frameworks?

Voici ce que j'ai maintenant:

public class Exam 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public DateTime CreationDate { get; set; } 
    public ICollection<Question> Questions { get; set; } 
} 

public class Question 
{ 
    public enum Answers 
    { 
     A, 
     B, 
     C, 
     D 
    } 

    public int Id { get; set; } 
    public string Name { get; set; } 
    public string AnswerA { get; set; } 
    public string AnswerB { get; set; } 
    public string AnswerC { get; set; } 
    public string AnswerD { get; set; } 
    public Answers Correct { get; set; } 
} 
+0

Qu'est-ce que vous avez l'air bien, quel problème vous rencontrez? –

+0

Cela semble correct. Quel est le problème que vous rencontrez? – Kenneth

+0

Avez-vous créé votre contexte et essayé d'utiliser les entités ci-dessus? Tout a l'air ok ... – Charleh

Répondre

0

Vous pouvez ajouter à vos propriétés Question comme ceci:

[ForeignKey("Exam")] 
public int ExamId { get; set; } 

public virtual Exam Exam { get; set; } 

si vous voulez avoir le contrôle sur les touches foregin.

Et vous pouvez ajouter mot-clé virtuel pour activer le chargement paresseux dans votre classe d'examen:

public virtual ICollection<Question> Questions { get; set; } 
Questions connexes