本文整理汇总了C#中IDataContext.ServerForums方法的典型用法代码示例。如果您正苦于以下问题:C# IDataContext.ServerForums方法的具体用法?C# IDataContext.ServerForums怎么用?C# IDataContext.ServerForums使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDataContext
的用法示例。
在下文中一共展示了IDataContext.ServerForums方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LoadServerForums
private IEnumerable<Forum> LoadServerForums(IDataContext db)
{
var q = db.ServerForums().OrderByDescending(f => f.SubscribedForum.Priority);
q =
Config.Instance.ForumDisplayConfig.ShowFullForumNames
? q.ThenBy(f => f.Descript)
: q.ThenBy(f => f.Name);
var counts =
from ti in db.TopicInfos()
group ti by ti.ForumID into grp
select
new
{
ForumID = grp.Key,
Count = grp.Count() + grp.Sum(iti => iti.AnswersCount),
Unread = grp.Sum(iti => iti.AnswersUnread),
MeUnread = grp.Sum(iti => iti.AnswersToMeUnread)
};
var forums =
from f in q
join ti in counts on f.ID equals ti.ForumID into lj
from ti in lj.DefaultIfEmpty() // left join forcing
where ti.Count > 0
select
new Forum(_serviceProvider)
{
ID = f.ID,
Name = f.Name,
LastSync = f.SubscribedForum != null ? f.SubscribedForum.LastSync : 0,
IsSubscribed = false,
IsRateable = f.Rated,
RateLimit = f.RateLimit > 0,
MessagesCount = ti.Count,
RepliesToMeUnread = ti.MeUnread,
Unread = ti.Unread,
InTop = f.InTop,
Priority = f.SubscribedForum.Priority.GetValueOrDefault(),
ForumDescription = f.Descript
};
return forums.Cast<Forum>().ToList();
}