获取三层层次结构的数据



我想开发一个讨论应用程序,其中有许多论坛。在每个论坛可以有许多线程。在每个线程中,可以有许多帖子。在SQL中,我有以下四个表:

FORUMS

  • Id - int identity
  • Name - nvarchar//论坛名称

THREADS

  • Id - int identity
  • ForumId -输入论坛的外键。Id
  • 主题- nvarchar

POSTS

  • Id - int identity
  • threaddid - int线程的外键。Id
  • 提交者-用户的外键。Id
  • SubmitterOn - datetime
  • 内容- nvarchar

USERS

  • Id - int identity
  • 名称- nvarchar

返回数据库中所有论坛的以下列的列表(列表中的一行对应FORUMS中的一行)的最佳方法是什么:

    Forum -论坛。
  • No of Threads - Forum的线程总数
  • No of Posts -属于Forum的Posts的总行数
  • 最后一个线程-线程。属于Forum
  • 的最新post的主题
  • 最后一个帖子提交者- USERS。最近属于Forum的post的名称
  • 最后一篇文章提交时间- POSTS。属于Forum
  • 的最新帖子的提交

谢谢

类似于

var query = from f in context.Forums
            select new
            {
                Name = f.Name,
                Threads = f.Threads.Count(),
                Posts = f.Threads.Sum(t => t.Posts.Count()),
                LastThread = f.Threads.OrderByDescending(t => t.Id).First().Subject,
                LastPostSubmitter = f.Threads.SelectMany(t => t.Posts).OrderByDescending(p => p.SubmitterOn).First().Name,
                LastPostSubmitterTime = f.Threads.SelectMany(t => t.Posts).OrderByDescending(p => p.SubmitterOn).First().SubmitterOn
            }

相关内容

  • 没有找到相关文章

最新更新