/// <summary> /// Construtor padrão. /// </summary> /// <param name="context">Contexto usado pela instancia.</param> public CustomQueryable(ILinqSourceContext context) { if (context == null) { throw new ArgumentNullException("context"); } _sourceContext = context; _queryProvider = new QueryProvider(context); }
/// <summary> /// Cria a instancia a partir de uma consulta. /// </summary> /// <param name="queryable"></param> /// <param name="bindStrategy">Estratégia de vinculação.</param> /// <param name="objectCreator">Criador de objetos.</param> /// <param name="executeSelect">Referencia do método que será usado para executar a seleção dos dados.</param> public Queryable(Query.Queryable queryable, IQueryResultBindStrategy bindStrategy, IQueryResultObjectCreator objectCreator, Func <Query.Queryable, IEnumerable <TEntity> > executeSelect) { queryable.Require("queryable").NotNull(); _sourceContext = queryable.SourceContext as ILinqSourceContext; _queryable = queryable; if (_sourceContext == null) { _sourceContext = new LinqSourceContext(queryable.SourceContext, new QueryableSourceProvider <TEntity>(queryable, bindStrategy, objectCreator, executeSelect)); } _queryProvider = new QueryProvider(_sourceContext); }
/// <summary> /// Cria a instancia a partir de uma consulta. /// </summary> /// <param name="queryable"></param> /// <param name="elementType"></param> /// <param name="executeSelect">Referencia do método que será usado para executar a seleção dos dados.</param> public CustomQueryable(Query.Queryable queryable, Type elementType, Func <Query.Queryable, System.Collections.IEnumerable> executeSelect) { queryable.Require("queryable").NotNull(); elementType.Require("elementType").NotNull(); _elementType = elementType; _sourceContext = queryable.SourceContext as ILinqSourceContext; _queryable = queryable; if (_sourceContext == null) { _sourceContext = new LinqSourceContext(queryable.SourceContext, new QueryableSourceProvider(queryable, executeSelect)); } _queryProvider = new QueryProvider(_sourceContext); }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="sourceContext"></param> public QueryProvider(ILinqSourceContext sourceContext) { _sourceContext = sourceContext; }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="context"></param> /// <param name="expression"></param> public SourceQuery(ILinqSourceContext context, Expression expression) { _context = context; _queryExpression = expression; }