我在我的 CommentService 中使用了两个存储库。
_commentRepository
_userRepository
使用 _commentRepository.GetAll() 函数,我得到了包含以下信息的所有评论的列表:[Id]、[Content]、[UserId]。
我正在尝试创建一个列表,其中包含 _userRepository 可获得的所有评论和一些匹配的用户信息,并将其存储在 DTO 中。
public ListOutput<CommentUserDto> GetCommentsWithUserInformation()
{
var comments = _commentRepository.GetAll();
// TODO: Add comment and user information to CommentUserDto.
return new ListOutput<CommentUserDto>
{
Items = Mapper.Map<List<CommentUserDto>>(comments)
};
}
我怎样才能使这项工作?
我发现的一些可能的想法:
- 创建 _commentUserRepository
- 使用 include 以某种方式加入两个表(我正在使用 EF)
- 在我的域层中创建一个负责组合逻辑的管理器。
编辑:
评论型号:
public class Comment
{
public virtual string Content { get; set; }
public virtual DateTime CreationTime { get; set; }
public virtual long UserId { get; set; } // Id of User that posted Comment (always filled in)
}
用户型号:
public class User {
public virtual string Name { get; set; }
public virtual string Surname { get; set; }
public virtual string Email { get; set; }
public virtual string Password { get; set; }
}
CommentUserDto: // 视图的可访问类
public class CommentUserDto {
public string Content { get; set; } // from comment
public DateTime CreationTime { get; set; } // from comment
public string PosterName { get; set; } // from user
public string PosterSurname { get; set; } // from user
}