2014-11-14 2 views
0

Я моделирую простое приложение ASP.NET MVC 5 для учебных целей.Создание базовой модели ASP.NET MVC 5

Пользователь должен уметь задавать вопросы и отвечать на них (пользователь может дать только один ответ на вопрос). Как это сделать?

User 1 --> * Answer * --> 1 Question 

Потому что это мой первый раз моделирование с этой структурой я не уверен, если все является эффективным и если я хороший пользователь из [] заявлений, я должен внести коррективы?

Пользователь:

public class User 
{ 
    [Key] 
    public int UserID { get; set; } 
    ... 

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

Вопрос:

public class Question 
{ 
    [Key] 
    public int QuestionID { get; set; } 

    [Required] 
    public int UserID { get; set; } 

    .... 
} 

Ответ:

public class Answer 
{ 
    [Key] 
    public int AnswerID{ get; set; } 

    [Required] 
    public int UserID { get; set; } 
    [Required] 
    public int QuestionID { get; set; } 

    public virtual User User { get; set; } 
    public virtual Question Question { get; set; } 
} 
+1

Вопрос класс должен иметь 'публичный виртуальный ICollection Ответы {получить; задавать; } '. – adiga

ответ

2

Here является хорошим примером этого.

Вы должны использовать атрибут Index с тем же именем. Такие как

public class Question 
     { 
     [Index("IX_QuestionAndUser", 1, IsUnique = true)] 
     public int QuestionID { get; set; } 

     [Index("IX_QuestionAndUser", 1, IsUnique = true)] 
     public int UserID { get; set; } 

     } 
1

Как вы собираетесь работать с инфраструктурой Entity. Ниже приведены полезные ресурсы для связи корабля в первых моделях кода.

Relations in Entity framework