/******************************************************** * ADO.NET 2.0 Data Provider for SQLite Version 3.X * Written by Robert Simpson (robert@blackcastlesoft.com) * * Released to the public domain, use at your own risk! ********************************************************/ #if USE_ENTITY_FRAMEWORK_6 namespace System.Data.SQLite.EF6 #else namespace System.Data.SQLite.Linq #endif { using System; using System.Data.Common; /// /// SQLite implementation of . /// public sealed class SQLiteProviderFactory : DbProviderFactory, IDisposable { #region Public Static Data /// /// Static instance member which returns an instanced /// class. /// public static readonly SQLiteProviderFactory Instance = new SQLiteProviderFactory(); #endregion /////////////////////////////////////////////////////////////////////// #region Public Constructors /// /// Constructs a new instance. /// public SQLiteProviderFactory() { // do nothing. } #endregion /////////////////////////////////////////////////////////////////////// #region System.Data.Common.DbProviderFactory Overrides /// /// Creates and returns a new object. /// /// The new object. public override DbCommand CreateCommand() { CheckDisposed(); return new SQLiteCommand(); } /////////////////////////////////////////////////////////////////////// /// /// Creates and returns a new object. /// /// The new object. public override DbCommandBuilder CreateCommandBuilder() { CheckDisposed(); return new SQLiteCommandBuilder(); } /////////////////////////////////////////////////////////////////////// /// /// Creates and returns a new object. /// /// The new object. public override DbConnection CreateConnection() { CheckDisposed(); return new SQLiteConnection(); } /////////////////////////////////////////////////////////////////////// /// /// Creates and returns a new /// object. /// /// The new object. public override DbConnectionStringBuilder CreateConnectionStringBuilder() { CheckDisposed(); return new SQLiteConnectionStringBuilder(); } /////////////////////////////////////////////////////////////////////// /// /// Creates and returns a new object. /// /// The new object. public override DbDataAdapter CreateDataAdapter() { CheckDisposed(); return new SQLiteDataAdapter(); } /////////////////////////////////////////////////////////////////////// /// /// Creates and returns a new object. /// /// The new object. public override DbParameter CreateParameter() { CheckDisposed(); return new SQLiteParameter(); } #endregion /////////////////////////////////////////////////////////////////////// #region IDisposable Members public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } #endregion /////////////////////////////////////////////////////////////////////// #region IDisposable "Pattern" Members private bool disposed; private void CheckDisposed() /* throw */ { #if THROW_ON_DISPOSED if (disposed) { throw new ObjectDisposedException( typeof(SQLiteProviderFactory).Name); } #endif } /////////////////////////////////////////////////////////////////////// private void Dispose(bool disposing) { if (!disposed) { //if (disposing) //{ // //////////////////////////////////// // // dispose managed resources here... // //////////////////////////////////// //} ////////////////////////////////////// // release unmanaged resources here... ////////////////////////////////////// disposed = true; } } #endregion /////////////////////////////////////////////////////////////////////// #region Destructor ~SQLiteProviderFactory() { Dispose(false); } #endregion } }