高效的数据保存,如系统(示例)

时间:2016-10-04 12:54:10

标签: asp.net database asp.net-core asp.net-core-mvc asp.net-core-1.0

我正在建立一个有几个同学的学校项目。我们遇到了(小)问题。

将有一个论坛'同学可以发布问题以及其他人可以给出答案/回复的地方。

我们正在使用ASP.NET核心应用程序(web api)。所以,就是这样:我们希望同学能够喜欢问题,答案和回复。

我已经建立了一些模型,我们可以做的就是制作一个类似于'每个部分的表格(问题,答案,回复)。但我觉得这样效率不高。

public class Question
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Title { get; set; }
}

public class Answer
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Body { get; set; }
}

public class Comment
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Body { get; set; }
}

现在我的问题是,保存这些喜欢的最有效方法是什么?我已经建立了一个类似的模型,但我不确定什么是最好的。

public class Like
{
   public Guid Id { get; set; }
   public User User { get; set; }
}

我尝试过在问题,答案和评论模型中添加ICollection<Like>等事情,但无法弄清楚如何使用此功能。

我希望有人有解决方案。

1 个答案:

答案 0 :(得分:1)

这些方面的东西应该让你开始。 采纳您的问题,答案和评论类:

public class Question
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Title { get; set; }
    public string Body { get; set; }
    public List<Answer> Answers {get; set; }
    public List<Comment> Comments {get; set; }
}

public class Answer
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Body { get; set; }
    public List<Comment> Comments {get; set; }
}

public class Comment
{
    public Guid Id { get; set; }
    public User User { get; set; }
    public string Body { get; set; }
}

然后创建一个包含可能类型的帖子的枚举:

public enum TypeOfPost
{
Question,
Answer,
Comment
}

在Like类中使用此枚举:

public class Like
{
   public Guid Id { get; set; }
   public User User { get; set; }
   public TypeOfPost PostType { get; set; }
   public Guid LikedPostId { get; set; }
}