C# 数据库,以避免对每个分页请求进行全表扫描…即。如果你有数百万行,以及几种类型的用户代理,比如web、iPhone、Android等,都要求相同的数据……我想这是我需要研究的一个单独的设计问题,但这就是分页持续计数背后的想法。感谢LukLed,你的建议与La
C# 数据库,以避免对每个分页请求进行全表扫描…即。如果你有数百万行,以及几种类型的用户代理,比如web、iPhone、Android等,都要求相同的数据……我想这是我需要研究的一个单独的设计问题,但这就是分页持续计数背后的想法。感谢LukLed,你的建议与La,c#,entity-framework-4,linq-to-entities,C#,Entity Framework 4,Linq To Entities,数据库,以避免对每个分页请求进行全表扫描…即。如果你有数百万行,以及几种类型的用户代理,比如web、iPhone、Android等,都要求相同的数据……我想这是我需要研究的一个单独的设计问题,但这就是分页持续计数背后的想法。感谢LukLed,你的建议与Ladislav的类似。我将尝试这种方法。但我仍然不确定的一点是,在应用分页之前,是否可以通过计数属性对投影到匿名类型上的记录进行排序?谢谢LukLed,您的建议与Ladislav的类似。我将尝试这种方法。但我仍然不确定的是,在应用分页之前,是否可
数据库,以避免对每个分页请求进行全表扫描…即。如果你有数百万行,以及几种类型的用户代理,比如web、iPhone、Android等,都要求相同的数据……我想这是我需要研究的一个单独的设计问题,但这就是分页持续计数背后的想法。感谢LukLed,你的建议与Ladislav的类似。我将尝试这种方法。但我仍然不确定的一点是,在应用分页之前,是否可以通过计数属性对投影到匿名类型上的记录进行排序?谢谢LukLed,您的建议与Ladislav的类似。我将尝试这种方法。但我仍然不确定的是,在应用分页之前,是否可以通过count属性对投影到匿名类型上的记录进行排序?
var query = from u in context.Classes
orderby tl.Name
select u;
List<Class> topics = ((ObjectQuery<Class>)query)
.Include("ClassComments")
.Skip(startRecord).Take(recordsToReturn).ToList();
var query = context.Classes
.Include("ClassComments") // Only add this if you want eager loading of all realted comments
.OrderBy(c => c.Name)
.Skip(startRecord)
.Take(recordsToReturn)
.Select(c => new
{
Class = c,
AttendeeCount = c.Attendees.Count(),
ClassCommentCount = c.ClassComments.Count() // Not needed because you are loading all Class comments so you can call Count on loaded collection
});
public class ClassViewModel {
public Class Class { get; set; }
public int AttendeeCount { get; set; }
public int ClassCommentCount { get; set; }
}
var viewModel = context.Classes.Select(clas =>
new ClassViewModel {
Class = clas,
AttendeeCount = clas.ClassAttendes.Count,
ClassCommentCount = clas.ClassComments.Count}
).OrderBy(model => model.ClassCommentCount).Skip(startRecord).Take(recordsToReturn).ToList();