Difference between revisions of "NHibernateQueries"

From no name for this wiki
Jump to: navigation, search
(SQL Function call)
(SQL Function call)
Line 1: Line 1:
 
NHibernate Query Samples
 
NHibernate Query Samples
=== SQL Function call  ===
+
=== Query over, SQL Function call  ===
  
 
<source lang="csharp">
 
<source lang="csharp">
Line 21: Line 21:
  
 
             return query.SingleOrDefault<string>();
 
             return query.SingleOrDefault<string>();
 +
</source>
 +
 +
== Query over, Grouping und Order by ==
 +
<source lang="csharp">
 +
            var vertragObjekte = Session.QueryOver<VertragObjekt>()
 +
                                        .Where(x => x.VertragObjektTyp == VertragObjektTyp.Nachher)
 +
                                        .Where(x => x.Vertrag.Id == vertragId)
 +
                                        .OrderByProperty(sortName)
 +
                                        .SelectList(
 +
                                            lst => lst
 +
                                                      .SelectGroup(x => x.ServiceNummer).WithAlias(() => vm.ServiceNummer)
 +
                                                      .SelectGroup(x => x.ServiceBezeichnung).WithAlias(() => vm.ServiceBezeichnung))
 +
                                        .TransformUsing(Transformers.AliasToBean<VertragObjekteServiceViewModel>())
 +
                                        .Skip(startRowIndex)
 +
                                        .Take(maximumRows)
 +
                                        .List<VertragObjekteServiceViewModel>();
 
</source>
 
</source>

Revision as of 13:19, 15 August 2014

NHibernate Query Samples

Query over, SQL Function call

            Vertrag v = null;
            VertragServiceAktuell vsa = null;
            Kostenart kav = null;
            Kostenart kavsa = null;

            var query = Session.QueryOver<BelegGruppe>()
                .Inner.JoinAlias(x => x.Vertrag, () => v)
                .Inner.JoinAlias(() => v.Kostenart, () => kav)
                .Inner.JoinAlias(() => v.VertragServicesAktuell, () => vsa)
                .Left.JoinAlias(() => vsa.Kostenart, () => kavsa)
                .Where(x => x.Id == belegGruppeId)
                .Where(() => vsa.Service.Id == serviceId)
                .Select(Projections.SqlFunction("coalesce",
                                                NHibernateUtil.String,
                                                Projections.Property(() => kavsa.Nummer),
                                                Projections.Property(() => kav.Nummer)));

            return query.SingleOrDefault<string>();

Query over, Grouping und Order by

            var vertragObjekte = Session.QueryOver<VertragObjekt>()
                                        .Where(x => x.VertragObjektTyp == VertragObjektTyp.Nachher)
                                        .Where(x => x.Vertrag.Id == vertragId)
                                        .OrderByProperty(sortName)
                                        .SelectList(
                                            lst => lst
                                                       .SelectGroup(x => x.ServiceNummer).WithAlias(() => vm.ServiceNummer)
                                                       .SelectGroup(x => x.ServiceBezeichnung).WithAlias(() => vm.ServiceBezeichnung))
                                        .TransformUsing(Transformers.AliasToBean<VertragObjekteServiceViewModel>())
                                        .Skip(startRowIndex)
                                        .Take(maximumRows)
                                        .List<VertragObjekteServiceViewModel>();