ObjectReader.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Collections.ObjectModel;
  5. using System.Data;
  6. using System.Linq.Expressions;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Reflection;
  10. using System.Text;
  11. using System.Globalization;
  12. using System.Data.Common;
  13. using System.Data.Linq;
  14. using System.Data.Linq.Provider;
  15. namespace System.Data.Linq.SqlClient {
  16. internal interface IObjectReader : IEnumerator, IDisposable {
  17. IObjectReaderSession Session { get; }
  18. }
  19. internal interface IObjectReaderSession : IConnectionUser, IDisposable {
  20. bool IsBuffered { get; }
  21. void Buffer();
  22. }
  23. internal interface IReaderProvider : IProvider {
  24. IDataServices Services { get; }
  25. IConnectionManager ConnectionManager { get; }
  26. }
  27. internal interface IObjectReaderFactory {
  28. IObjectReader Create(DbDataReader reader, bool disposeReader, IReaderProvider provider, object[] parentArgs, object[] userArgs, ICompiledSubQuery[] subQueries);
  29. IObjectReader GetNextResult(IObjectReaderSession session, bool disposeReader);
  30. }
  31. internal interface IObjectReaderCompiler {
  32. IObjectReaderFactory Compile(SqlExpression expression, Type elementType);
  33. IObjectReaderSession CreateSession(DbDataReader reader, IReaderProvider provider, object[] parentArgs, object[] userArgs, ICompiledSubQuery[] subQueries);
  34. }
  35. internal interface ICompiledSubQuery {
  36. IExecuteResult Execute(IProvider provider, object[] parentArgs, object[] userArgs);
  37. }
  38. }