Adding IContentQuery.Count() to do a count(*) query

--HG--
branch : dev
extra : transplant_source : %92%FE%95%FEFI%0Co%D6%1D%9A%8Fz%97%18%B2v4%B7%CB
This commit is contained in:
Sebastien Ros
2010-11-01 12:56:02 -07:00
parent 75efbf5f0a
commit 94202528a2
3 changed files with 15 additions and 0 deletions

View File

@@ -248,6 +248,15 @@ namespace Orchard.Tests.ContentManagement {
}
[Test]
public void CountReturnsNumber() {
AddSampleData();
var count = _manager.Query()
.Count();
Assert.That(count, Is.EqualTo(4));
}
[Test]
public void QueryShouldJoinVersionedRecords() {

View File

@@ -195,6 +195,11 @@ namespace Orchard.ContentManagement {
return _query.Slice(0, 0).AsPart<T>();
}
int IContentQuery<T>.Count() {
var criteria = _query.BindItemVersionCriteria();
return criteria.SetProjection( Projections.RowCount() ).UniqueResult<Int32>();
}
IEnumerable<T> IContentQuery<T>.Slice(int skip, int count) {
return _query.Slice(skip, count).AsPart<T>();
}

View File

@@ -16,6 +16,7 @@ namespace Orchard.ContentManagement {
IEnumerable<TPart> List();
IEnumerable<TPart> Slice(int skip, int count);
int Count();
IContentQuery<TPart, TRecord> Join<TRecord>() where TRecord : ContentPartRecord;