本文整理汇总了C#中IHqlExpressionVisitor类的典型用法代码示例。如果您正苦于以下问题:C# IHqlExpressionVisitor类的具体用法?C# IHqlExpressionVisitor怎么用?C# IHqlExpressionVisitor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IHqlExpressionVisitor类属于命名空间,在下文中一共展示了IHqlExpressionVisitor类的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: 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
示例5: 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
示例6: 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
示例7: 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
示例8: 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
示例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)
{
// 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
示例11: 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
示例12: 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
示例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 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
示例15: 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
示例16: 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
示例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)
{
// 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
示例18: BuildHql
public override HqlTreeNode BuildHql(
MethodInfo method,
Expression targetObject,
ReadOnlyCollection<Expression> arguments,
HqlTreeBuilder treeBuilder,
IHqlExpressionVisitor visitor)
{
var left = treeBuilder.Cast(visitor.Visit(targetObject).AsExpression(), typeof(string));
var right = treeBuilder.Cast(visitor.Visit(arguments.First()).AsExpression(), typeof(string));
var leftSubstring = treeBuilder.MethodCall("substring", left, treeBuilder.Constant(4));
var rightSubstring = treeBuilder.MethodCall("substring", right, treeBuilder.Constant(4));
var equals = treeBuilder.Equality(leftSubstring, rightSubstring);
return equals;
}
开发者ID:nhibernate,项目名称:nhibernate-core,代码行数:15,代码来源:EntityWithUserTypePropertyIsEquivalentGenerator.cs
示例19: 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
示例20: BuildHql
public HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments,
HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
{
if (arguments.Count == 2)
{
return treeBuilder.Like(
visitor.Visit(arguments[0]).AsExpression(),
visitor.Visit(arguments[1]).AsExpression());
}
if (arguments[2].NodeType == ExpressionType.Constant)
{
var escapeCharExpression = (ConstantExpression)arguments[2];
return treeBuilder.Like(
visitor.Visit(arguments[0]).AsExpression(),
visitor.Visit(arguments[1]).AsExpression(),
treeBuilder.Constant(escapeCharExpression.Value));
}
throw new ArgumentException("The escape character must be specified as literal value or a string variable");
}
开发者ID:nhibernate,项目名称:nhibernate-core,代码行数:20,代码来源:StringGenerator.cs
注:本文中的IHqlExpressionVisitor类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论