• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Ast.HqlTreeBuilder类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中NHibernate.Hql.Ast.HqlTreeBuilder的典型用法代码示例。如果您正苦于以下问题:C# HqlTreeBuilder类的具体用法?C# HqlTreeBuilder怎么用?C# HqlTreeBuilder使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



HqlTreeBuilder类属于NHibernate.Hql.Ast命名空间,在下文中一共展示了HqlTreeBuilder类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: BuildHql

		public HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments,
		                            HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
		{
			return treeBuilder.Like(
				visitor.Visit(arguments[0]).AsExpression(),
				visitor.Visit(arguments[1]).AsExpression());
		}
开发者ID:snbbgyth,项目名称:WorkFlowEngine,代码行数:7,代码来源:StringGenerator.cs


示例2: BuildHql

 public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
 {
     HqlExpression targetExpression = visitor.Visit(targetObject).AsExpression();
     HqlExpression argument0Expression = visitor.Visit(arguments[0]).AsExpression();
     HqlEquality result = treeBuilder.Equality(targetExpression, argument0Expression);
     return result;
 }
开发者ID:BosphorusTeam,项目名称:bosphorus.dao,代码行数:7,代码来源:HqlGenerator.cs


示例3: BuildHql

        public override HqlTreeNode BuildHql(
            MethodInfo method,
            Expression targetObject,
            ReadOnlyCollection<Expression> arguments,
            HqlTreeBuilder treeBuilder,
            IHqlExpressionVisitor visitor)
        {
            // Get the StringComparison argument.
            var comparison = (StringComparison)(arguments[1].As<ConstantExpression>().Value);

            if (comparison == StringComparison.CurrentCultureIgnoreCase
                || comparison == StringComparison.InvariantCultureIgnoreCase
                || comparison == StringComparison.OrdinalIgnoreCase)
            {
                // If the comparison calls for us to ignore the case, use SQL LOWER()
                return
                    treeBuilder.Equality(
                        treeBuilder.MethodCall("lower", new[] { visitor.Visit(targetObject).AsExpression() }),
                        treeBuilder.MethodCall("lower", new[] { visitor.Visit(arguments[0]).AsExpression() }));
            }

            // Otherwise use the database's default string comparison mechanism.
            return treeBuilder.Equality(
                visitor.Visit(targetObject).AsExpression(),
                visitor.Visit(arguments[0]).AsExpression());
        }
开发者ID:KamoHaladus,项目名称:BrockAllen.MembershipReboot,代码行数:26,代码来源:StringComparisonEqualsGenerator.cs


示例4: ProjectionEvaluator

 public ProjectionEvaluator(ParameterAggregator parameterAggregator, System.Type inputType, Func<Expression, bool> predicate)
 {
     _parameterAggregator = parameterAggregator;
     _inputParameter = Expression.Parameter(inputType, "input");
     _predicate = predicate;
     _hqlTreeBuilder = new HqlTreeBuilder();
     _stack = new HqlNodeStack(_hqlTreeBuilder);
 }
开发者ID:nkmajeti,项目名称:nhibernate,代码行数:8,代码来源:ProjectionEvaluator.cs


示例5: BuildHql

		public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
		{
			IEnumerable<HqlExpression> args = visitor.Visit(targetObject)
				.Union(arguments.Select(a => visitor.Visit(a)))
				.Cast<HqlExpression>();

			return treeBuilder.MethodCall(_name, args);
		}
开发者ID:jlevitt,项目名称:nhibernate-core,代码行数:8,代码来源:StandardLinqExtensionMethodGenerator.cs


示例6: BuildHql

 public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
 {
     return treeBuilder.Like(
         visitor.Visit(targetObject).AsExpression(),
         treeBuilder.Concat(
             treeBuilder.Constant("%"),
             visitor.Visit(arguments[0]).AsExpression()));
 }
开发者ID:remcoros,项目名称:nhibernate,代码行数:8,代码来源:StringGenerator.cs


示例7: BuildHql

		public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
		{
			// HqlGeneratorExpressionTreeVisitor.VisitConstantExpression will always return an HqlEquality 
			// instead of HqlParameter for argument that is of type bool.
			// Use the HqlParameter that exists as first children to the HqlEquality as second argument into treeBuilder.Equality
			return treeBuilder.Equality(
				visitor.Visit(targetObject).AsExpression(),
				visitor.Visit(arguments[0]).Children.First().AsExpression());
		}
开发者ID:ntuveri,项目名称:nhibernate-core,代码行数:9,代码来源:EqualsGenerator.cs


示例8: GetRhs

		private static HqlExpression GetRhs(MethodInfo method, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
		{
			if (arguments.Count > 0)
				return visitor.Visit(arguments[0]).AsExpression();

			var returnType = method.ReturnType;
			var instance = returnType.IsValueType ? Activator.CreateInstance(returnType) : null;
			return treeBuilder.Constant(instance);
		}
开发者ID:marchlud,项目名称:nhibernate-core,代码行数:9,代码来源:GetValueOrDefaultGenerator.cs


示例9: BuildHql

        public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject,
                                             ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder,
                                             IHqlExpressionVisitor visitor)
        {
            var arg = visitor.Visit(arguments[0]).AsExpression();
            var mt = treeBuilder.MethodCall("hid_Parse", arg);

            return mt;
        }
开发者ID:zoldello,项目名称:NHibernate.HierarchyId,代码行数:9,代码来源:HidParseGenerator.cs


示例10: BuildHql

		public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
		{
			Expression lhs = arguments.Count == 1 ? targetObject : arguments[0];
			Expression rhs = arguments.Count == 1 ? arguments[0] : arguments[1];

			return treeBuilder.Equality(
				visitor.Visit(lhs).AsExpression(),
				visitor.Visit(rhs).AsExpression());
		}
开发者ID:jlevitt,项目名称:nhibernate-core,代码行数:9,代码来源:EqualsGenerator.cs


示例11: BuildHql

		public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject,
		                                     ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder,
		                                     IHqlExpressionVisitor visitor)
		{
			IEnumerable<HqlExpression> args = arguments.Select(a => visitor.Visit(a))
				.Cast<HqlExpression>();

			return treeBuilder.BooleanMethodCall("FREETEXT", args);
		}
开发者ID:juanplopes,项目名称:nhibernate,代码行数:9,代码来源:BooleanMethodExtensionExample.cs


示例12: BuildHql

        public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject,
                                             ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder,
                                             IHqlExpressionVisitor visitor)
        {
            var arg = visitor.Visit(arguments[0]).AsExpression();
            var parent = visitor.Visit(arguments[1]).AsExpression();
            var mt = treeBuilder.BooleanMethodCall("hid_IsDescendantOf", new[] {arg, parent});

            return mt;
        }
开发者ID:vertiman,项目名称:NHibernate.HierarchyId,代码行数:10,代码来源:IsDescendantOfGenerator.cs


示例13: BuildHql

        public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
        {
            var arg = visitor.Visit(arguments[0]).AsExpression();
            var c1 = visitor.Visit(arguments[1]).AsExpression();
            var c2 = visitor.Visit(arguments[2]).AsExpression();

            var mt = treeBuilder.MethodCall("hid_GetReparentedValue", arg, c1, c2);

            return mt;
        }
开发者ID:zoldello,项目名称:NHibernate.HierarchyId,代码行数:10,代码来源:GetReparentedValueGenerator.cs


示例14: BuildHql

 public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
 {
     return treeBuilder.Concat(
         new[]
     {
         visitor.Visit(arguments[0]).AsExpression(),
         visitor.Visit(arguments[1]).AsExpression(),
         visitor.Visit(arguments[2]).AsExpression()
     });
 }
开发者ID:richinoz,项目名称:ToDo,代码行数:10,代码来源:ConcatHqlGenerator.cs


示例15: BuildHql

		public override HqlTreeNode BuildHql(MethodInfo method, Expression expression, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
		{
			string function = method.Name.ToLowerInvariant();
			HqlExpression firstArgument = visitor.Visit(arguments[0]).AsExpression();

			if (arguments.Count == 2)
			{
				return treeBuilder.MethodCall(function, firstArgument, visitor.Visit(arguments[1]).AsExpression());
			}

			return treeBuilder.MethodCall(function, firstArgument);
		}
开发者ID:nikson,项目名称:nhibernate-core,代码行数:12,代码来源:MathGenerator.cs


示例16: BuildHql

		public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
		{
			string leadingOrTrailing = "TRAILING";
			if (method.Name == "TrimLeading")
				leadingOrTrailing = "LEADING";

			return treeBuilder.MethodCall("Trim",
										  treeBuilder.Ident(leadingOrTrailing),
			                              visitor.Visit(arguments[1]).AsExpression(),
										  treeBuilder.Ident("FROM"),
			                              visitor.Visit(arguments[0]).AsExpression());
		}
开发者ID:marchlud,项目名称:nhibernate-core,代码行数:12,代码来源:LinqMapping.cs


示例17: BuildHql

        /// <summary>
        /// 
        /// </summary>
        /// <param name="method"></param>
        /// <param name="targetObject">Should be an ISecurable</param>
        /// <param name="arguments">Not sure what the heck arg[0] is, but arg[1] is the entityName</param>
        /// <param name="treeBuilder"></param>
        /// <param name="visitor"></param>
        /// <returns></returns>
        public override HqlTreeNode BuildHql(
            MethodInfo method,
            Expression targetObject,
            ReadOnlyCollection<Expression> arguments,
            HqlTreeBuilder treeBuilder,
            IHqlExpressionVisitor visitor)
        {
            // This works, but it pulls the entity into memory, which is not what we want.
            Expression<Func<ISecurable, string, bool>> IsAllowedExpression = (x, name) =>
                x.IsLoadableFor(name);

            return visitor.Visit(IsAllowedExpression);
        }
开发者ID:spc-ofp,项目名称:tubs-data-clr,代码行数:22,代码来源:EntityMethodGenerator.cs


示例18: ConvertBooleanToCase

		public static HqlExpression ConvertBooleanToCase(HqlExpression node)
		{
			if (node is HqlBooleanExpression)
			{
				var builder = new HqlTreeBuilder();

				return builder.Case(
					new[] {builder.When(node, builder.True())},
					builder.False());
			}

			return node;
		}
开发者ID:snbbgyth,项目名称:WorkFlowEngine,代码行数:13,代码来源:SelectClauseVisitor.cs


示例19: BuildHql

        ///<summary>
        ///
        ///</summary>
        ///<param name="method"></param>
        ///<param name="targetObject">Should be an ISecurable</param>
        ///<param name="arguments">Not sure what the heck arg[0] is, but arg[1] is the entityName</param>
        ///<param name="treeBuilder"></param>
        ///<param name="visitor"></param>
        ///<returns></returns>
        public override HqlTreeNode BuildHql(
            MethodInfo method,
            Expression targetObject,
            ReadOnlyCollection<Expression> arguments,
            HqlTreeBuilder treeBuilder,
            IHqlExpressionVisitor visitor)
        {
            // arguments[0] is a System.Linq.Expressions.Expression
            // arguments[1] is our constant value
            var expr = arguments[0];

            // This doesn't really help us right now, but log it just in case...
            if (expr is Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression)
            {
                Console.WriteLine(
                    "ReferencedQuerySource: {0}",
                    ((Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression)expr).ReferencedQuerySource
                );
            }

            // Getting somewhere?
            // expr.Type is Spc.Ofp.Tubs.DAL.Entities.Trip
            Console.WriteLine("Expression type: {0}", expr.Type);

            // HqlAlias is "AccessControl" (entity property), "ace" (name used in expression) ?
            // HqlExpression is equality expression ?
            var aceAlias = treeBuilder.Alias("AccessControl as ace");

            var entityName = ((ConstantExpression)arguments[1]).Value;

            Console.WriteLine("entityName: {0}", entityName);

            var equality = treeBuilder.Equality(
                treeBuilder.Alias("ace.EntityName"),
                treeBuilder.Constant(entityName)
            );

            var joinExpression = treeBuilder.Join(equality, aceAlias);

            // This doesn't actually do anything...
            return visitor.Visit(expr).AsExpression();

            /*
             * var dc =
                DetachedCriteria.For<T>()
                                .CreateAlias("AccessControl", "ace", JoinType.InnerJoin)
                                .Add(NHibernate.Criterion.Expression.Eq("ace.EntityName", this._entityName));
             */
        }
开发者ID:spc-ofp,项目名称:tubs-data-clr,代码行数:58,代码来源:AclContainsGenerator.cs


示例20: BuildHql

 public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
 {
     var comparison = (StringComparison)(arguments[1].As<ConstantExpression>().Value);
     if (comparison == StringComparison.CurrentCultureIgnoreCase ||
         comparison == StringComparison.InvariantCultureIgnoreCase ||
         comparison == StringComparison.OrdinalIgnoreCase)
     {
         return treeBuilder.Equality(
             treeBuilder.MethodCall("lower", new[] { visitor.Visit(targetObject).AsExpression() }),
             treeBuilder.MethodCall("lower", new[] { visitor.Visit(arguments[0]).AsExpression() }));
     }
     return treeBuilder.Equality(
         visitor.Visit(targetObject).AsExpression(),
         visitor.Visit(arguments[0]).AsExpression());
 }
开发者ID:ahjohannessen,项目名称:FubuFastPack,代码行数:15,代码来源:ExtendedLinqToHqlGeneratorRegistry.cs



注:本文中的NHibernate.Hql.Ast.HqlTreeBuilder类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Ast.HqlTreeNode类代码示例发布时间:2022-05-26
下一篇:
C# Ast.HqlExpression类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap