简体   繁体   中英

Making a basic ASP.NET MVC 5 model

I'm modelling a simple ASP.NET MVC 5 application for learning purposes.

A user should be able ask and answer questions (A user can only give one answer to a question). How should this be done?

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

Because this is my first time modelling with this framework I'm not sure if everything is efficient and if I make good user of the [] statements, should I make adjustments?

User:

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

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

Question:

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

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

    ....
}

Answer:

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; }
}

Here is a good example for this.

You should use Index attribute with the same name. Such as

 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; }

       }

As you will be going with Entity framework. Following are the useful resources for relation ship in code first models.

Relations in Entity framework

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM