Consultas

NHibernate soporta dos diferentes tipos de esquemas para realizar consultas: Hibernate Query Language (HQL) y Consultas de Criterios (también puedes realizar consultas en SQL convencional, pero perderá portabilidad al hacerlo). HQL es la forma más sencilla de las 2 ya que se parece mucho a SQL – usas From, where, aggregates, order by, group by, etc. Sin embargo en vez de consultar directamente contra tus tablas, escribes consultas contra tu dominio -  lo que significa que HQL soporta los principios de la orientación a objetos tales como la herencia y el polimorfismo. Ambos métodos de consulta son abstracciones arriba de SQL, lo que significa que obtienes portabilidad total – lo único que necesitas hacer para dirigirse a una base de datos diferente es cambiar la configuración de su dialecto.

Con la liberación de .NET 3.5 finalmente se ha agregado una colección  HashSet al marco de trabajo. Idealmente, versiones futuras agregaran otro tipo de conjuntos con un OrderedSet. Los conjuntos son colecciones muy útiles y eficientes, ¡así que considera agregarlos a tu arsenal de herramientas! Puedes aprender más leyendo el artículo en el que Jason Smith describe los conjuntos.

 

HQL funciona a partir de la interfaz IQuery, que se crea con la invocación del método CreateQuery en tu sesión. Con IQuery puedes regresar entidades individuales, colecciones, parámetros substitutos y más. Aquí hay algunos ejemplos:

 

string lastName = "allen";

ISession session = _sessionFactory.OpenSession();

//retrieve a salesperson by last name

IQuery query = s.CreateQuery("from SalesPerson p where p.LastName =

'allen'");

SalesPerson p = query.UniqueResult<SalesPerson>();

//same as above but in 1 line, and with the last name as a variable

SalesPerson p = session.CreateQuery("from SalesPerson p where p.LastName = ?").SetString(0, lastName).UniqueResult<SalesPerson>();

//people with few sales

IList<SalesPerson> slackers = session.CreateQuery("from SalesPerson person where size(person.Sales) < 5").List<SalesPerson>();

 

Esta es solo una muestra de lo que se puede hacer con HQL (el ejemplo que puede descargarse tiene algunos ejemplos ligeramente más complicados).

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted in:   Tags:

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



IT Builder

Conoce mas de los servicios de IT Builder y la forma en la que podemos apoyarte a construir software de clase mundial

* Procesos para el desarrollo de software (CMMI, MSF, TSP, PSP, Moprosoft).
* Habilitacion de ambientes colaborativos y automatizacion con Visual Studio Team System.
* Arquitectura de aplicaciones bajo tecnologia Microsoft.
* Construccion de aplicaciones .NET.

www.itbuilder.com.mx
Imaginalo, nosotros lo construimos !

Calendar

«  February 2012  »
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011
View posts in large calendar

MVP

MVP Factor


Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2012 ITB - Gabriel Oliva C.