現在、部分的な信頼の問題のため、アプリケーションから流暢なnhibernateをリッピングするプロセスを進めています。流暢なAPIを使用してEntityFramework5.1RCに移行します。
リポジトリに次のメソッドがありますが、Entity Frameworkを使用して同じクエリを記述できるかどうかを調べようとしていますか?私は明らかにそれが可能な限り効率的であることを探しています。
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);
}
ヘルプ/ポインタは大歓迎です。