internal static IProjection ProcessMod(MethodCallExpression methodCallExpression) { IProjection property = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[0]).AsProjection(); object divisor = ExpressionProcessor.FindValue(methodCallExpression.Arguments[1]); return(Projections.SqlFunction("mod", NHibernateUtil.Int32, property, Projections.Constant(divisor))); }
internal static IProjection ProcessCoalesce(MethodCallExpression methodCallExpression) { IProjection property = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[0]).AsProjection(); object replaceValueIfIsNull = ExpressionProcessor.FindValue(methodCallExpression.Arguments[1]); return(Projections.SqlFunction("coalesce", NHibernateUtil.Object, property, Projections.Constant(replaceValueIfIsNull))); }
internal static IProjection ProcessCharIndex(MethodCallExpression methodCallExpression) { IProjection property = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[0]).AsProjection(); object theChar = ExpressionProcessor.FindValue(methodCallExpression.Arguments[1]); object startLocation = ExpressionProcessor.FindValue(methodCallExpression.Arguments[2]); return(Projections.SqlFunction("locate", NHibernateUtil.String, Projections.Constant(theChar), property, Projections.Constant(startLocation))); }
internal static IProjection ProcessSubstr(MethodCallExpression methodCallExpression) { IProjection property = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[0]).AsProjection(); object startIndex = ExpressionProcessor.FindValue(methodCallExpression.Arguments[1]); object length = ExpressionProcessor.FindValue(methodCallExpression.Arguments[2]); return(Projections.SqlFunction("substring", NHibernateUtil.String, property, Projections.Constant(startIndex), Projections.Constant(length))); }
internal static IProjection ProcessSubstr(MethodCallExpression methodCallExpression) { IProjection property = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[0]).AsProjection(); var startIndex = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[1]); var length = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[2]); return(Projections.SqlFunction("substring", NHibernateUtil.String, property, startIndex.AsProjection(), length.AsProjection())); }
internal static IProjection ProcessConcat(MethodCallExpression methodCallExpression) { NewArrayExpression args = (NewArrayExpression)methodCallExpression.Arguments[0]; IProjection[] projections = new IProjection[args.Expressions.Count]; for (var i = 0; i < args.Expressions.Count; i++) { projections[i] = ExpressionProcessor.FindMemberProjection(args.Expressions[i]).AsProjection(); } return(Projections.SqlFunction("concat", NHibernateUtil.String, projections)); }
internal static IProjection ProcessRound(MethodCallExpression methodCallExpression) { IProjection innerProjection = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[0]).AsProjection(); IProjection digitsProjection = Projections.Constant(0); if (methodCallExpression.Arguments.Count > 1) { digitsProjection = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[1]).AsProjection(); } return(Projections.SqlFunction("round", NHibernateUtil.Double, innerProjection, digitsProjection)); }
public string GetSelectedTaskParticipants(int taskId) { using (var session = Hibernate.SessionFactory.OpenSession()) { Task t = null; User u = null; var participants = session.QueryOver(() => t) .JoinAlias(() => t.Users, () => u) .Where(() => t.Id == taskId) .SelectList(l => l .Select(Pro.SqlFunction("CONCAT", SqlType.String, Pro.SqlFunction("SUBSTRING", SqlType.String, Pro.SqlFunction("UPPER", SqlType.String, Pro.Property("u.Name")), Pro.Constant(1), Pro.Constant(1)) , Pro.SqlFunction("SUBSTRING", SqlType.String, Pro.SqlFunction("UPPER", SqlType.String, Pro.Property("u.Surname")), Pro.Constant(1), Pro.Constant(1)) ))) .List <string>(); return(string.Join(", ", participants.OrderBy(s => s))); } }
private static IProjection SqlFunction(string name, IType type, System.Linq.Expressions.Expression projection) { IProjection property = ExpressionProcessor.FindMemberProjection(projection).AsProjection(); return(Projections.SqlFunction(name, type, property)); }
internal static IProjection ProcessDay(System.Linq.Expressions.Expression expression) { IProjection property = ExpressionProcessor.FindMemberProjection(expression).AsProjection(); return(Projections.SqlFunction("day", NHibernateUtil.Int32, property)); }
internal static IProjection ProcessBitLength(MethodCallExpression methodCallExpression) { IProjection property = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[0]).AsProjection(); return(Projections.SqlFunction("bit_length", NHibernateUtil.String, property)); }
internal static IProjection ProcessDoubleAbs(MethodCallExpression methodCallExpression) { IProjection property = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[0]).AsProjection(); return(Projections.SqlFunction("abs", NHibernateUtil.Double, property)); }
internal static IProjection ProcessMinutePart(MethodCallExpression methodCallExpression) { IProjection property = ExpressionProcessor.FindMemberProjection(methodCallExpression.Arguments[0]).AsProjection(); return(Projections.SqlFunction("minute", NHibernateUtil.Int32, property)); }