ActiveRecord con soporte para DetachedQuery

[English post]

Este fin de semana escribí las clases necesarias para el soporte de IDetachedQuery con ActiveRecord. DetachedQuery no está disponible todavía en ninguna versión de NHibernate, la podés encontrar solamente en uNHAddInsy en el SVN de NHibernate.

Agregué un proyecto a uNHAddIns: uNHAddIns.ActiveRecord. Este consiste en las clasicas clases de ActiveRecord pero con soporte para DetachedQuery.

Si queres este soporte, tenés que usar estas clases:

  • ActiveRecordBase
  • ActiveRecordBase<T>
  • ActiveRecordValidationBase
  • and ActiveRecordValidationBase<T>

Y vas a poder hacer cosas como por ejemplo:

Customer[] customers = Customer.FindAll(new DetachedQuery("from Customer Order By Name"));

Los nuevos métodos para ActiveRecordBase y ActiveRecordValidationBase son:

  • public static bool Exists(Type targetType, IDetachedQuery detachedQuery);
  • public static Array FindAll(Type targetType, IDetachedQuery detachedQuery);
  • public static object FindFirst(Type targetType, IDetachedQuery detachedQuery);
  • public static object FindOne(Type targetType, IDetachedQuery detachedQuery);
  • public static Array SlicedFindAll(Type targetType, int firstResult, int maxResults, IDetachedQuery detachedQuery);

Y los nuevos metodos para ActiveRecordBase<T> y ActiveRecordValidationBase<T> son:

  • public static bool Exists(IDetachedQuery detachedQuery);
  • public static T[] FindAll(IDetachedQuery detachedQuery);
  • public static T FindFirst(IDetachedQuery detachedQuery);
  • public static T FindOne(IDetachedQuery detachedQuery);
  • public static T[] SlicedFindAll(int firstResult, int maxResults, IDetachedQuery detachedQuery);

Esta implementación no oculta ninguna característica de las clases base de ActiveRecord, son una extensión para el soporte para IDetachedQuery.

Requerimientos

Las clases están en el ensamblado uNHAddIns.ActiveRecord.dll. Y este ensamblado requiere del principal: uNHAddIns.dll.

Descargas

Entrada en la Wiki

1 comment so far

  1. [...] traerá más capacidades para ActiveRecord, por ejemplo, aquí muestro como usar DetachedQuery con ActiveRecord. Usando NHibernate 2.0, podré subir un patch [...]

Leave a comment

Please be polite and on topic. Your e-mail will never be published.