了解用户是否喜欢特定评论

时间:2015-03-08 20:41:38

标签: c# ravendb

我有以下Post类:

public class Post
{
  public string Id {get;set;}
  public string Content {get;set;}
  public IList<Comment> Comments {get;set;}
}

public class Comment
{
  public int OrderNumber {get;set;} //kind of CommentId
  public string AuthorId {get;set;}
  public string Text {get;set;}
  public IList<string> Voters {get;set;} //Ids of users who liked the post
}

每个评论可能有数千个喜欢,但我需要在客户端上只显示它们的数量,所以我创建了以下索引:

Map = posts => from post in posts
               select new {
                            Id = post.Id,
                            Content = post.Content, 
                            Comments = post.Comments.Select(x => 
                              new CommentProjection {
                                AuthorId = x.AuthorId,
                                Text = x.Text,
                                VotersCount = x.VotersCount
                                                    }),
                          };

问题是我需要突出显示用户已经喜欢的评论。有没有办法修改上面的索引以将此信息添加到查询结果中?

2 个答案:

答案 0 :(得分:3)

您可以采用其他方式,跟踪用户的评论,以便显示他们喜欢的评论。

答案 1 :(得分:0)

为什么没有一个名为Votes的独立实体?它可以有3个简单字段,一个是用户表的外键,另一个是注释表。第3个(位)表示这是一个downvote还是upvote(如)。

然后,您可以直接轻松地查询此表(通过过滤用户ID和带有“upvote”的用户ID)