28 lines
790 B
C#
28 lines
790 B
C#
using Microsoft.Data.Sqlite;
|
|
|
|
namespace Aegis.Repository.SQLite;
|
|
|
|
public sealed class SqliteConnectionFactory
|
|
{
|
|
private readonly string _connectionString;
|
|
|
|
public SqliteConnectionFactory(string connectionString)
|
|
=> _connectionString = connectionString;
|
|
|
|
public SqliteConnection Open()
|
|
{
|
|
var conn = new SqliteConnection(_connectionString);
|
|
conn.Open();
|
|
|
|
using var cmd = conn.CreateCommand();
|
|
cmd.CommandText = """
|
|
PRAGMA foreign_keys = ON;
|
|
PRAGMA journal_mode = WAL;
|
|
PRAGMA synchronous = NORMAL;
|
|
PRAGMA temp_store = MEMORY;
|
|
""";
|
|
cmd.ExecuteNonQuery();
|
|
|
|
return conn;
|
|
}
|
|
} |