예제 #1
0
        /// <summary>
        ///     Sets up an SQLite connection string using custom settings and invokes custom user code in order to build the file
        ///     path.
        /// </summary>
        /// <param name="sqlFile">name of your sql file</param>
        /// <param name="sqliteSettings">sqlite settings</param>
        /// <param name="setupDbPath">custom Func to initialize your db file path</param>
        /// <example>
        ///     <![CDATA[
        /// // will put your database in the users Personal Documents directory.
        /// var dbConnectionProvider = new DbConnectionProvider("mydb.sqlite3",
        ///     new SqliteSettings{ BrowsableConnectionString = false };
        ///     fileName => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), fileName))
        /// ]]>
        /// </example>
        public DbConnectionProvider(string sqlFile, SqliteSettings sqliteSettings, Func <string, string> setupDbPath)
        {
            var realDbPath = setupDbPath.Invoke(sqlFile);

            if (sqliteSettings.BrowsableConnectionString)
            {
                DatabasePath = realDbPath;
            }

            var sqliteConnectionStringBuilder = new SqliteConnectionStringBuilder($"Data Source={realDbPath}")
            {
                Cache = sqliteSettings.Cache,
                Mode  = sqliteSettings.Mode,
                BrowsableConnectionString = sqliteSettings.BrowsableConnectionString
            };

            _connectionString = sqliteConnectionStringBuilder.ConnectionString;
        }
예제 #2
0
 /// <inheritdoc />
 /// <summary>
 ///     Sets up an SQLite connection string using custom settings and the default file path
 ///     <see cref="F:System.Environment.SpecialFolder.ApplicationData" />.
 /// </summary>
 /// <param name="sqlFile">name of your sql file</param>
 /// <param name="sqliteSettings">sqlite settings</param>
 public DbConnectionProvider(string sqlFile, SqliteSettings sqliteSettings) : this(sqlFile, sqliteSettings, _defaultDbPath)
 {
 }