Настройка режима журнала в SQLite для кода Entity Framework Core сначала

Я использую DBContext в Entity Framework, используя такой процесс, как в этом руководстве для создания БД.

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Filename=blog.db");
    }
}

и сохранить, используя что-то вроде:

using (var context = new BloggingContext())
{
    context.Add(blog);
    await context.SaveChangesAsync();
}

Как мне настроить режим журнала на что-то вроде WAL?


person Tyress    schedule 15.04.2016    source источник


Ответы (1)


Поставщик Sqlite для EF7 поддерживает только небольшое подмножество параметра строки подключения, поэтому вам нужно будет выполнить некоторые команды вручную:

var context = new BloggingContext();
var connection = context.Database.GetDbConnection();
connection.Open();
using (var command = connection.CreateCommand())
{
    command.Text= "PRAGMA journal_mode=WAL;";
    command.ExecuteNonQuery();
}

Вы можете обернуть это в свой конструктор или на фабрику.

Похожие сообщения и другой.

person Fabien PERRONNET    schedule 15.04.2016
comment
Это нужно делать для каждого подключения или можно только один раз? - person jjxtra; 23.05.2019