Pregunta

Tengo esta consulta:

criteria = session.CreateCriteria(typeof (Building))
    .CreateAlias("Estate", "estate")
    .SetProjection(Projections.ProjectionList()
                       .Add(Property.ForName("Name"), "BuildingName")
                       .Add(Property.ForName("estate.Name"), "EstateName")
                       .Add(Projections.SqlProjection(
                                "(estate1_.BBRMunicipalityNumber + '-' + estate1_.BBREstateNumber + '-' + {alias}.BBRBuildingNumber)" + " as BBRNumber",
                                new[] { "BBRNumber" },
                                new[] { NHibernateUtil.String }),
                            "BBRNumber"))

Hay una manera que puedo conseguir el alias de SQL para "bienes" como escribir {raíces} en la cadena SQL?{raíces} no funciona.Ahora me terminó de escribir el alias en la cadena SQL, pero que no parece muy sólido.

Si entiendo la documentación correctamente este debería ser posible.Estoy usando NH2.0.1.

/Asger

¿Fue útil?

Solución

No es una respuesta directa a su pregunta, pero:¿Por qué no se consulta a los tres por separado los valores de y hacer la concatenación en el código en lugar de utilizar la base de datos para que?

Para responder a su pregunta:En modo de Hibernación v3 (java, lo siento) no hay un getColumnAlias método de la Proyección de la interfaz.Yo no soy capaz de encontrar su contraparte en Fluent.

Saludos

Otros consejos

Puede usar {alias}: hará referencia al alias de la proyección actual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top