Remotion.Linq.SqlBackend.SqlPreparation.SqlPreparationSubStatementTableFactory.CreateSqlTableForStatement C# (CSharp) Метод

CreateSqlTableForStatement() публичный Метод

public CreateSqlTableForStatement ( SqlStatement sqlStatement, SqlTable>.Func tableCreator ) : FromExpressionInfo
sqlStatement Remotion.Linq.SqlBackend.SqlStatementModel.SqlStatement
tableCreator SqlTable>.Func
Результат FromExpressionInfo
    public FromExpressionInfo CreateSqlTableForStatement (SqlStatement sqlStatement, Func<ITableInfo, SqlTable> tableCreator)
    {
      if (sqlStatement.Orderings.Count == 0)
      {
        var tableInfo = new ResolvedSubStatementTableInfo (_uniqueIdentifierGenerator.GetUniqueIdentifier ("q"), sqlStatement);
        var sqlTable = tableCreator (tableInfo);
        return new FromExpressionInfo (sqlTable, new Ordering[0], new SqlTableReferenceExpression (sqlTable), null);
      }

      var selectExpressionWithOrderings = GetNewSelectExpressionWithOrderings (sqlStatement);
      var tableWithSubStatement = CreateSqlCompatibleSubStatementTable (sqlStatement, selectExpressionWithOrderings, tableCreator);
      return GetFromExpressionInfoForSubStatement (sqlStatement, tableWithSubStatement);
    }

Usage Example

        public override Expression VisitSqlSubStatementExpression(SqlSubStatementExpression expression)
        {
            ArgumentUtility.CheckNotNull("expression", expression);

            var sqlStatement = expression.SqlStatement;

            var factory = new SqlPreparationSubStatementTableFactory(Stage, Context, _generator);

            FromExpressionInfo = factory.CreateSqlTableForStatement(sqlStatement, _tableGenerator);
            Assertion.DebugAssert(FromExpressionInfo.Value.WhereCondition == null);

            return(new SqlTableReferenceExpression(FromExpressionInfo.Value.SqlTable));
        }
All Usage Examples Of Remotion.Linq.SqlBackend.SqlPreparation.SqlPreparationSubStatementTableFactory::CreateSqlTableForStatement