Listato6()
private Boolean Listato6()
{
// preparo i dati per il test
Int32 custId;
using (ISession session = NHSessionManager.GetSession())
{
session.CreateSQLQuery("delete from Orders").AddScalar("res", NHibernateUtil.Int32).UniqueResult();
session.CreateSQLQuery("delete from Customer").AddScalar("res", NHibernateUtil.Int32).UniqueResult();
Customer gianMaria = new Customer("Gian Maria", "Ricci");
for (Int32 I = 0; I < 50; ++I)
gianMaria.Orders.Add(new Order(DateTime.Now, I * 10.00f));
custId = (Int32)session.Save(gianMaria);
session.Flush();
}
using (ISession session = NHSessionManager.GetSession())
{
Customer gm = session.Get<Customer>(custId);
IList<Order> page;
Int32 pageNum = 0;
Int32 pageSize = 10;
while ((page = session
.CreateFilter(gm.Orders, "")
.SetFirstResult((pageNum++ * pageSize))
.SetMaxResults(pageSize)
.List<Order>()).Count > 0)
{
foreach (Order o in page)
if (o.Total > 100)
{
// fai qualche cosa e poi esci perchè hai trovato l'elemento
return true;
}
}
return false;
}
}