本文整理汇总了C#中ExpressionBuilder.Convert方法的典型用法代码示例。如果您正苦于以下问题:C# ExpressionBuilder.Convert方法的具体用法?C# ExpressionBuilder.Convert怎么用?C# ExpressionBuilder.Convert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExpressionBuilder
的用法示例。
在下文中一共展示了ExpressionBuilder.Convert方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildSkip
static void BuildSkip(ExpressionBuilder builder, IBuildContext sequence, ISqlExpression prevSkipValue, ISqlExpression expr)
{
var sql = sequence.SqlQuery;
builder.SqlProvider.SqlQuery = sql;
sql.Select.Skip(expr);
builder.SqlProvider.SqlQuery = sql;
if (sql.Select.TakeValue != null)
{
if (builder.DataContextInfo.SqlProviderFlags.GetIsSkipSupportedFlag(sql) ||
!builder.DataContextInfo.SqlProviderFlags.IsTakeSupported)
sql.Select.Take(builder.Convert(
sequence,
new SqlBinaryExpression(typeof(int), sql.Select.TakeValue, "-", sql.Select.SkipValue, Precedence.Additive)));
if (prevSkipValue != null)
sql.Select.Skip(builder.Convert(
sequence,
new SqlBinaryExpression(typeof(int), prevSkipValue, "+", sql.Select.SkipValue, Precedence.Additive)));
}
if (!builder.DataContextInfo.SqlProviderFlags.GetAcceptsTakeAsParameterFlag(sql))
{
var p = sql.Select.SkipValue as SqlParameter;
if (p != null)
p.IsQueryParameter = false;
}
}
示例2: BuildTake
static void BuildTake(ExpressionBuilder builder, IBuildContext sequence, ISqlExpression expr)
{
var sql = sequence.SqlQuery;
builder.SqlProvider.SqlQuery = sql;
sql.Select.Take(expr);
if (sql.Select.SkipValue != null &&
builder.DataContextInfo.SqlProviderFlags.IsTakeSupported &&
!builder.DataContextInfo.SqlProviderFlags.GetIsSkipSupportedFlag(sql))
{
if (sql.Select.SkipValue is SqlParameter && sql.Select.TakeValue is SqlValue)
{
var skip = (SqlParameter)sql.Select.SkipValue;
var parm = (SqlParameter)sql.Select.SkipValue.Clone(new Dictionary<ICloneableElement,ICloneableElement>(), _ => true);
parm.SetTakeConverter((int)((SqlValue)sql.Select.TakeValue).Value);
sql.Select.Take(parm);
var ep = (from pm in builder.CurrentSqlParameters where pm.SqlParameter == skip select pm).First();
ep = new ParameterAccessor
{
Expression = ep.Expression,
Accessor = ep.Accessor,
SqlParameter = parm
};
builder.CurrentSqlParameters.Add(ep);
}
else
sql.Select.Take(builder.Convert(
sequence,
new SqlBinaryExpression(typeof(int), sql.Select.SkipValue, "+", sql.Select.TakeValue, Precedence.Additive)));
}
if (!builder.DataContextInfo.SqlProviderFlags.GetAcceptsTakeAsParameterFlag(sql))
{
var p = sql.Select.TakeValue as SqlParameter;
if (p != null)
p.IsQueryParameter = false;
}
}