Table<T> is the LINQ query root returned by Connection for a persistent class. It exposes the class extent as an IOrderedQueryable<T> and allows standard C# LINQ query syntax to be used on eXtremeDB objects.
public class Table<T> : IOrderedQueryable<T> where T : class
{
public Table(Connection con);
public Table(Connection con, Expression<Func<T, bool>> predicate);
public IQueryable<T> Where(Expression<Func<T, bool>> predicate);
public IEnumerable<T> Select(Expression<Func<T, bool>> predicate);
public IEnumerator<T> GetEnumerator();
IEnumerator IEnumerable.GetEnumerator();
public Type ElementType { get; }
public Expression Expression { get; }
public IQueryProvider Provider { get; }
}
Connection.GetTable<T>() rather than constructing it directly.T on the specified connection.Select<T>() helper and by the LINQ adapter itself.T that satisfy the predicate. The adapter attempts to use suitable indexes when the predicate shape is recognized; otherwise it falls back to sequential filtering.typeof(T).orderby and query comprehensions to be applied to the table.from obj in con.GetTable<T>() where ... select obj for query syntax, or con.Select<T>(predicate) for a short form when only filtering is needed.Connection.NumberOfSequentialSearches to see how many times the LINQ adapter had to fall back to sequential evaluation for the current connection.ArgumentException.Table<T> is not an SQL translation layer. It combines eXtremeDB cursor-based selection with the standard managed LINQ pipeline. Query operators beyond the adapter's index selection are applied by the LINQ layer over the enumerable produced by the adapter.Connection.