Difference between revisions of "NHibernateQueries"
(→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>();