由于部分信任问题,我们目前正在从我们的应用程序中删除 fluent nhibernate。我们正在使用他们的 fluent API 迁移到 Entity Framework 5.1RC。
我们的存储库中有以下方法,我试图找出是否可以使用实体框架编写相同的查询?我显然在寻找它尽可能高效。
public PagedList<Topic> GetRecentTopics(int pageIndex, int pageSize, int amountToTake)
{
// Get a delayed row count
var rowCount = Session.QueryOver<Topic>()
.Select(Projections.RowCount())
.Cacheable()
.FutureValue<int>();
// Get the topics using an efficient query
var results = Session.QueryOver<Topic>()
.OrderBy(x => x.CreateDate).Desc
.Skip((pageIndex - 1) * pageSize)
.Take(pageSize)
.Cacheable()
.Future<Topic>().ToList();
// We might only want to display the top 100
// but there might not be 100 topics
var total = rowCount.Value;
if (total > amountToTake)
{
total = amountToTake;
}
// Return a paged list
return new PagedList<Topic>(results, pageIndex, pageSize, total);
}
非常感谢任何帮助/指针。