在ASP.NET MVC4中指定模型中的关系

时间:2014-11-20 18:21:21

标签: asp.net-mvc

我是一名ASP.NET MVC4初学者,我正在尝试创建一种博客。我在模型中创建关系时遇到问题。我的问题的背景是,我有一个带有用户信息的模型(Users.cs),一个包含帖子信息的模型(Posts.cs),以及一个包含评论信息的第三个模型(Comments.cs)。

因此,用户可以拥有多个帖子,但帖子只能属于一个用户,
用户可以有很多评论,但评论只能属于用户,
帖子可以有很多评论,但评论只能属于帖子,

我的问题是,我该如何编写这三个模型?到目前为止,我有这个:

public class Users
{
    public int UserID { get; set; }
    public string Firstname { get; set; }    
    public string Lastname  { get; set; }
    public DateTime DOB { get; set; }
    public string Sex { get; set; }
    public string Email { get; set; }
    public DateTime RegDate { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public string PasswordSalt { get; set; }

    public virtual List<Posts> Post { get; set; }
    public virtual List<Comments> Comment { get; set; }
}

class Posts
{
    public int PostID { get; set; }
    public string PostTitle { get; set; }
    public string PostContent { get; set; }
    public DateTime PostDate { get; set; }
    public int AuthorID { get; set; }
    public int CommentID { get; set; }

    public virtual List<Comments> Comment { get; set; }
    public virtual Users user { get; set; }
}

public class Comments
{
    public int CommentID { get; set; }
    public string Comment { get; set; }
    public DateTime CommentDate { get; set; }
    public int AuthorID { get; set; }
    public int PostID { get; set; }

    public virtual Posts post { get; set; }
    public virtual Users user { get; set; }  
}

请问如何正确编写三个模型?帮助!

1 个答案:

答案 0 :(得分:1)

您有强类型的模型类,并且您已经正确使用它们。您只需要删除指向ID的冗余属性 - Commentsint AuthorID已有Users user时不需要class Posts { public int AuthorID { get; set; } public int CommentID { get; set; } } public class Comments { public int AuthorID { get; set; } public int PostID { get; set; } } 指向作者。

删除这些属性:

{{1}}