Estoy refactorizando la consulta de estilo antiguo CreateCriteria()
a QueryOver()
. Mi servicio Wcf obtiene string PropertyName
para solicitar resultados de consultas. Para IQueryable
utilizo Dynamic LINQ para hacer dicho pedido, para CreateCriteria()
- AddOrder()
.Nhibernate QueryOver. PedidoPor usar cadenas de nombres de propiedades.
IList<object[]> result =
GetSession()
.QueryOver(() => activity)
.JoinAlias(() => activity.ActivityLicense,() => license)
.Select(Projections.ProjectionList()
.Add(Projections.Count<Activity>(e => e.Id), "ActivityCount")
.Add(Projections.Group(() => license.SerialNumber), "SerialNumber")
.Add(Projections.Count<Activity>(e => e.MacAdress), "MacAddressCount")
.Add(Projections.Count<Activity>(e => e.IpAdress), "IpAddressCount")
)
.OrderByAlias("ActivityCount") // Compilation Error - I need such extension method
.List<object[]>();
¿Alguna sugerencia de cómo hacer un pedido en caso de cadena de nombres de propiedades?
PS: No podría utilizar LINQ a Nhibernate: LINQ to NHibernate - .GroupBy().Skip().Take() cause an exception
Gracias!
Gracias. ¿Es posible volver ICriteria a IQueryOver? –
No lo creo, lo que podría hacer es refactorizar eso en un método de extensión IQueryOver. Voy a publicar un ejemplo ... – dotjoe