获得具有多个数据库的结果的最佳方法是什么

轨道

我有三个 db 类和相应的viewModel

public class User
{
   public string Id{get;set;}
   public string Name{get; set;}
   public string Email{get; set;}
}

public class Post
{
     [Key]
     [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
     public long Id{get; set;};
     public string Title{get; set;}
     public string Content{get; set;}
}

public class Comment
{
     [Key]
     [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
     public long Id { get; set; }
     public long PostId { get; set; }
     [ForeignKey("PostId")]
     public Post Post { get; set; }
     public string Content{get;set;}
}

并且有三个services用于与database.

我想获得五个写最多帖子(第一个列表)并且对帖子有最多评论的用户。

为此,我有另一个视图模型。

public class TopContributorViewModel
{
     public string UserName { get; set; }
     public long PostCount { get; set; }
     public long CommentCount { get; set; }

}

我有一个控制器。使用 LINQ 查询获得该结果的最佳方法是什么?

  1. 打电话给用户服务?
  2. 打电话给邮局?
  3. 打电话给评论服务?

当然还有相应的 Repository 用于通信 db。

轨道

由于用户可以创建并拥有帖子和评论,因此应该有帖子和评论表的两个引用。喜欢

public class User
{
   public string Id{get;set;}
   public string Name{get; set;}
   public string Email{get; set;}
   public ICollection<Post> Posts { get; set; }
   public ICollection<Comment> Comments { get; set; }
}

在此之后,您可以通过 linq 轻松查询。在控制器中,

public class YourController : Controller
{
        private readonly IUserService _user;

        public YourController(IUserService user)
        {
              _user = user;           
        }

        public ActionResult YourMethod()
        {
            var model = _user.GetResult();
            return View(model);
        }
}

在服务中,

public class UserService : IUserService
{
      private readonly IUserRepository _user;

      public UserService(IUserRepository  user)
      {
         _user=user;
      }

      public List<TopContributorViewModel> GetResult()
      {
         var result = _user.FindAll(u => u.Active)
                           .Include(p=>p.Posts)
                           .Include(p=>p.Comments)
                           .Select(model=>new TopContributorViewModel
                            {
                              UserName = model.Name,
                              UserId = model.Id,
                              PostCount = model.Posts.Count(u=>u.IsPublished==true && u.UserId==model.Id),
                              CommentCount = model.Comments.Count(u => u.IsPublished == true && u.UserId == model.Id)
                            });
            return result.ToList();
      }

}

谢谢你。继续前进!!!!!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在多个数据库上运行 Laravel 计划任务的最佳方法是什么?

来自分类Dev

在 MongoDB 中设计具有父子关系的数据库的最佳方法是什么?

来自分类Dev

将数据从多个表/一个数据库传递到视图的最佳方法是什么?

来自分类Dev

将数据从多个表/一个数据库传递到视图的最佳方法是什么?

来自分类Dev

Codeigniter:维护多个数据库连接数据的最佳实践是什么?

来自分类Dev

在Asp.Net MVC 5中实现多个数据库的最佳实践是什么?

来自分类Dev

这个数据库表的最佳索引是什么?

来自分类Dev

保存具有从Microsoft Access数据库读取多个数据的SQL结果

来自分类Dev

PDO:将数据插入数据库后获取结果的最佳方法是什么

来自分类Dev

在Rails 4的对等市场中,从具有许多关系的数据库中删除用户的最佳方法是什么?

来自分类Dev

在多个站点之间共享数据库数据的最佳方法是什么?

来自分类Dev

存储多个主题的最佳数据库设计是什么?

来自分类Dev

动态配置多个数据库连接的最佳方法

来自分类Dev

从数据库获取数据的最佳方法是什么?

来自分类Dev

多个数据库与具有逻辑分区数据的单个数据库

来自分类Dev

将多个数据库查询导入Excel的最简单方法是什么?

来自分类Dev

从具有不同案例的表中选择多个随机结果的最佳方法是什么

来自分类Dev

具有多个相似实体的数据库最佳实践

来自分类Dev

具有多个数据库的CoreData

来自分类Dev

具有多个数据库的SSRS报告

来自分类Dev

EF具有不同版本的多个数据库

来自分类Dev

docker-compose具有多个数据库

来自分类Dev

在Android上创建新数据库之前检查现有数据库的最佳方法是什么

来自分类Dev

构造数据库表的最佳方法是什么?

来自分类Dev

从数据库生成网站的最佳方法是什么

来自分类Dev

轮询数据库时的最佳方法是什么?

来自分类Dev

优化海量 CouchDB 数据库的最佳方法是什么?

来自分类Dev

备份sqlite数据库的最佳方法是什么?

来自分类Dev

在整个android应用程序生命周期内只有一个数据库连接的最佳方法是什么?

Related 相关文章

  1. 1

    在多个数据库上运行 Laravel 计划任务的最佳方法是什么?

  2. 2

    在 MongoDB 中设计具有父子关系的数据库的最佳方法是什么?

  3. 3

    将数据从多个表/一个数据库传递到视图的最佳方法是什么?

  4. 4

    将数据从多个表/一个数据库传递到视图的最佳方法是什么?

  5. 5

    Codeigniter:维护多个数据库连接数据的最佳实践是什么?

  6. 6

    在Asp.Net MVC 5中实现多个数据库的最佳实践是什么?

  7. 7

    这个数据库表的最佳索引是什么?

  8. 8

    保存具有从Microsoft Access数据库读取多个数据的SQL结果

  9. 9

    PDO:将数据插入数据库后获取结果的最佳方法是什么

  10. 10

    在Rails 4的对等市场中,从具有许多关系的数据库中删除用户的最佳方法是什么?

  11. 11

    在多个站点之间共享数据库数据的最佳方法是什么?

  12. 12

    存储多个主题的最佳数据库设计是什么?

  13. 13

    动态配置多个数据库连接的最佳方法

  14. 14

    从数据库获取数据的最佳方法是什么?

  15. 15

    多个数据库与具有逻辑分区数据的单个数据库

  16. 16

    将多个数据库查询导入Excel的最简单方法是什么?

  17. 17

    从具有不同案例的表中选择多个随机结果的最佳方法是什么

  18. 18

    具有多个相似实体的数据库最佳实践

  19. 19

    具有多个数据库的CoreData

  20. 20

    具有多个数据库的SSRS报告

  21. 21

    EF具有不同版本的多个数据库

  22. 22

    docker-compose具有多个数据库

  23. 23

    在Android上创建新数据库之前检查现有数据库的最佳方法是什么

  24. 24

    构造数据库表的最佳方法是什么?

  25. 25

    从数据库生成网站的最佳方法是什么

  26. 26

    轮询数据库时的最佳方法是什么?

  27. 27

    优化海量 CouchDB 数据库的最佳方法是什么?

  28. 28

    备份sqlite数据库的最佳方法是什么?

  29. 29

    在整个android应用程序生命周期内只有一个数据库连接的最佳方法是什么?

热门标签

归档