Castle.MonoRail.ActiveRecordSupport.Pagination.ARPaginableCriteria.ObtainCount C# (CSharp) Method

ObtainCount() public method

Implementors should execute a query to return the record count
This needs a performance boost. Couldn't think of a better way of get the count.
public ObtainCount ( ) : int
return int
		public virtual int ObtainCount()
		{
			ISessionFactoryHolder holder = ActiveRecordMediator.GetSessionFactoryHolder();
			ISession session = holder.CreateSession(targetType);

			try
			{
				ICriteria criteria = session.CreateCriteria(targetType);

				if (criterions != null)
				{
					foreach (ICriterion queryCriteria in criterions)
					{
						criteria.Add(queryCriteria);
					}
				}
			
				if (orders != null)
				{
					foreach (Order order in orders)
					{
						criteria.AddOrder(order);
					}
				}

				return criteria.List().Count;
			}
			finally
			{
				holder.ReleaseSession(session);
			}
		}