.NET C#代码未拾取SQLite数据库更改

.NET C#代码未拾取SQLite数据库更改,c#,.net,sqlite,C#,.net,Sqlite,我有一个.NETC#应用程序,它使用本地SQLite数据库。我可以读取数据库,但如果我通过外部工具在数据库中手动更改值,我就不会读取C代码上的更改。如果我重新启动应用程序,我可以读回更改 编辑 这就是初始化;这里主要是.NET魔术 var services = new ServiceCollection(); services.AddLogging(); services.AddOptions(); services.AddDbContext<Service

我有一个.NETC#应用程序,它使用本地SQLite数据库。我可以读取数据库,但如果我通过外部工具在数据库中手动更改值,我就不会读取C代码上的更改。如果我重新启动应用程序,我可以读回更改

编辑

这就是初始化;这里主要是.NET魔术

    var services = new ServiceCollection();
    services.AddLogging();
    services.AddOptions();
    services.AddDbContext<ServicesDbContext>(options =>
        options.UseSqlite($"Filename={fileName}", b => b.MigrationsAssembly("ReviewerServices.Data")));
    services.AddTransient<INetworkUtilities, NetworkUtilities>();
var services=newservicecolection();
services.AddLogging();
services.AddOptions();
services.AddDbContext(选项=>
options.UseSqlite($“Filename={Filename}”,b=>b.migrationassembly(“ReviewerServices.Data”);
services.AddTransient();
用法更简单:

public async Task<IEnumerable<FtpServerGroup>> GetFtpPullListAsync(DateTime baseTime)
{
    var servers = await context.FtpServerGroup
        .Include(r => r.FtpServers)
        .Include(r => r.Instruments)
        .Where(w => !w.Disabled)
        .ToListAsync();

    servers = servers.FindAll(w => baseTime - w.FtpLastPullTime >= w.FtpPullInterval);
    return servers.AsEnumerable();
}
公共异步任务GetFtpPullListAsync(DateTime baseTime) { var servers=await context.FtpServerGroup .Include(r=>r.ftp服务器) .包括(r=>r.仪器) .Where(w=>!w.Disabled) .ToListAsync(); servers=servers.FindAll(w=>baseTime-w.FtpLastPullTime>=w.FtpPullInterval); 返回服务器; }
您如何与DB沟通?它前面可能有某种缓存引擎。请提供一些代码。我正在这样做。。。请稍等……您可能正在使用WAL,否则您将无法从多个线程/进程使用同一个数据库。WAL意味着更改将在某个时间点应用于数据文件,这可能是在更改后几秒钟。WAL=提前写入日志记录。您可以锁定数据库文件(在这种情况下,其他人无法写入数据库)或使用WAL。在这种情况下,更改会写入日志并尽快应用于数据文件。SQLite是一个嵌入式数据库,这意味着进程本身必须处理这些更新。这需要时间。你如何与DB沟通?它前面可能有某种缓存引擎。请提供一些代码。我正在这样做。。。请稍等……您可能正在使用WAL,否则您将无法从多个线程/进程使用同一个数据库。WAL意味着更改将在某个时间点应用于数据文件,这可能是在更改后几秒钟。WAL=提前写入日志记录。您可以锁定数据库文件(在这种情况下,其他人无法写入数据库)或使用WAL。在这种情况下,更改会写入日志并尽快应用于数据文件。SQLite是一个嵌入式数据库,这意味着进程本身必须处理这些更新。这需要时间。