public VisitSqlStatement ( |
||
sqlStatement | ||
expressionContext | SqlExpressionContext | |
리턴 |
public SqlStatement VisitSqlStatement (SqlStatement sqlStatement, SqlExpressionContext expressionContext)
{
ArgumentUtility.CheckNotNull ("sqlStatement", sqlStatement);
if (expressionContext == SqlExpressionContext.PredicateRequired)
throw new InvalidOperationException ("A SqlStatement cannot be used as a predicate.");
var statementBuilder = new SqlStatementBuilder (sqlStatement);
var newSelectProjection = _stage.ApplyContext (sqlStatement.SelectProjection, expressionContext, _mappingResolutionContext);
statementBuilder.SelectProjection = newSelectProjection;
statementBuilder.RecalculateDataInfo (sqlStatement.SelectProjection);
var newSqlStatement = statementBuilder.GetSqlStatement();
return newSqlStatement.Equals (sqlStatement) ? sqlStatement : newSqlStatement;
}
public static SqlStatement ApplyContext (SqlStatement sqlStatement, SqlExpressionContext expressionContext, IMappingResolutionStage stage, IMappingResolutionContext mappingresolutionContext) { ArgumentUtility.CheckNotNull ("sqlStatement", sqlStatement); ArgumentUtility.CheckNotNull ("stage", stage); ArgumentUtility.CheckNotNull ("mappingresolutionContext", mappingresolutionContext); var visitor = new SqlContextSelectionAdjuster (stage, mappingresolutionContext); return visitor.VisitSqlStatement (sqlStatement, expressionContext); }