本文整理汇总了C#中System.Linq.Expressions.Expression.GetValue方法的典型用法代码示例。如果您正苦于以下问题:C# Expression.GetValue方法的具体用法?C# Expression.GetValue怎么用?C# Expression.GetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Linq.Expressions.Expression
的用法示例。
在下文中一共展示了Expression.GetValue方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Create
public static TableRef Create(QueryBlock query, Expression expression)
{
if (expression.NodeType.In(ExpressionType.Constant, ExpressionType.MemberAccess))
{
var value = expression.GetValue();
if (value is ITable)
{
return Create(query, (ITable)value);
}
else if (value is ITmpTable)
{
return CreateTmp(query, (IQueryable)value);
}
else if (value is IQueryable)
{
return new QueryBlock(query.QueryBatch, query, ((IQueryable)value).Expression);
}
else
{
throw new NotSupportedException();
}
}
else
{
return new QueryBlock(query.QueryBatch, query, expression);
}
}
示例2: Parse
private string Parse(Expression expression)
{
if (expression is MemberExpression)
return ParseMemberAccess((MemberExpression)expression);
else if (expression is BinaryExpression)
return ParseBinaryExpression((BinaryExpression)expression);
else if (expression is ConstantExpression)
return ((ConstantExpression)expression).Value.ToSql();
else if (expression is MethodCallExpression)
return Parameters.Add(expression.GetValue());
else if (expression is ParameterExpression)
return ParseParameterAccess((ParameterExpression)expression);
else
throw new NotSupportedException();
}
示例3: WriteParameter
private void WriteParameter(Expression node)
{
_sb.Append("@" + Parameters.CurrentIndex);
Parameters.AddValues(node.GetValue());
}