Remotion.Linq.SqlBackend.SqlPreparation.SqlPreparationFromExpressionVisitor.AnalyzeFromExpression C# (CSharp) Метод

AnalyzeFromExpression() публичный статический Метод

public static AnalyzeFromExpression ( Expression fromExpression, ISqlPreparationStage stage, UniqueIdentifierGenerator generator, IMethodCallTransformerProvider provider, ISqlPreparationContext context, SqlTable>.Func tableGenerator ) : FromExpressionInfo
fromExpression System.Linq.Expressions.Expression
stage ISqlPreparationStage
generator UniqueIdentifierGenerator
provider IMethodCallTransformerProvider
context ISqlPreparationContext
tableGenerator SqlTable>.Func
Результат FromExpressionInfo
    public static FromExpressionInfo AnalyzeFromExpression (
        Expression fromExpression,
        ISqlPreparationStage stage,
        UniqueIdentifierGenerator generator,
        IMethodCallTransformerProvider provider,
        ISqlPreparationContext context,
        Func<ITableInfo, SqlTable> tableGenerator)
    {
      ArgumentUtility.CheckNotNull ("fromExpression", fromExpression);
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("generator", generator);
      ArgumentUtility.CheckNotNull ("provider", provider);
      ArgumentUtility.CheckNotNull ("context", context);

      var visitor = new SqlPreparationFromExpressionVisitor (generator, stage, provider, context, tableGenerator);
      visitor.VisitExpression (fromExpression);
      if (visitor.FromExpressionInfo != null)
        return visitor.FromExpressionInfo.Value;

      var message = string.Format (
          "Error parsing expression '{0}'. Expressions of type '{1}' cannot be used as the SqlTables of a from clause.",
          FormattingExpressionTreeVisitor.Format (fromExpression),
          fromExpression.Type.Name);
      throw new NotSupportedException (message);
    }

Usage Example

 public virtual FromExpressionInfo PrepareFromExpression(
     Expression fromExpression,
     ISqlPreparationContext context,
     Func <ITableInfo, SqlTable> tableGenerator)
 {
     return(SqlPreparationFromExpressionVisitor.AnalyzeFromExpression(
                fromExpression, this, _uniqueIdentifierGenerator, _methodCallTransformerProvider, context, tableGenerator));
 }