Beispiel #1
0
        private void HandleKnownTypeProject(NewExpression newExpr)
        {
            NHibernate.Transform.AliasToBeanConstructorResultTransformer transformer = new NHibernate.Transform.AliasToBeanConstructorResultTransformer(newExpr.Constructor);

            NHibernate.Expression.ProjectionList projections = NHibernate.Expression.Projections.ProjectionList();
            foreach (MemberExpression member in newExpr.Arguments)
            {
                projections.Add(NHibernate.Expression.Projections.Property(member.Member.Name));
            }
            rootCriteria.SetProjection(projections);
            rootCriteria.SetResultTransformer(transformer);
        }
Beispiel #2
0
        public void QueryTestWithStrongTypeReturnValue()
        {
            using (ISession session = OpenSession())
            {
                ICriteria c = session.CreateCriteria(typeof(ProjectionTestClass));

                NHibernate.Transform.IResultTransformer trans = new NHibernate.Transform.AliasToBeanConstructorResultTransformer(
                    typeof(ProjectionReport).GetConstructors()[0]
                    );

                c.SetProjection(Projections.ProjectionList()
                                .Add(Projections.Avg("Pay"))
                                .Add(Projections.Max("Pay"))
                                .Add(Projections.Min("Pay")));
                c.SetResultTransformer(trans);
                ProjectionReport report = c.UniqueResult <ProjectionReport>();
                Assert.AreEqual(report.AvgPay, 2.5);
                Assert.AreEqual(report.MaxPay, 4);
                Assert.AreEqual(report.MinPay, 1);
            }
        }
		public void QueryTestWithStrongTypeReturnValue()
		{
			using (ISession session = OpenSession())
			{
				ICriteria c = session.CreateCriteria(typeof(ProjectionTestClass));

				NHibernate.Transform.IResultTransformer trans = new NHibernate.Transform.AliasToBeanConstructorResultTransformer(
					typeof(ProjectionReport).GetConstructors()[0]
					);
				
				c.SetProjection(Projections.ProjectionList()
		                			.Add(Projections.Avg("Pay"))
		                			.Add(Projections.Max("Pay"))
		                			.Add(Projections.Min("Pay")));
				c.SetResultTransformer(trans);
				ProjectionReport report = c.UniqueResult<ProjectionReport>();
				Assert.AreEqual(report.AvgPay, 2.5);
				Assert.AreEqual(report.MaxPay, 4);
				Assert.AreEqual(report.MinPay, 1);
			}
		}