aegis-api/Aegis.Infrastructure/SQLite/SqliteConnectionFactory.cs

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;
}
}