要从SQLite数据库读取和写入Windows服务项目,我需要什么配置?
我以前有一个正在工作的控制台应用程序项目,它将读取和写入本地SQLite数据库文件的设置 基于这个项目,我通过在类上移植并使用ServiceBase类创建服务,将其转换为windows服务项目。 但是,每次运行该服务时,我都会收到一个要从SQLite数据库读取和写入Windows服务项目,我需要什么配置?,sqlite,service,entity-framework-core,Sqlite,Service,Entity Framework Core,我以前有一个正在工作的控制台应用程序项目,它将读取和写入本地SQLite数据库文件的设置 基于这个项目,我通过在类上移植并使用ServiceBase类创建服务,将其转换为windows服务项目。 但是,每次运行该服务时,我都会收到一个SqliteException,并显示消息SQLite错误1:“没有这样的表:设置”。 使用SQLite的DB Browser,我确实看到了数据库文件中的表,所以我不确定发生了什么 我尝试过使用Windows服务使用我自己的帐户进行测试,我尝试过让本地系统访问我的构
SqliteException
,并显示消息SQLite错误1:“没有这样的表:设置”。
使用SQLite的DB Browser,我确实看到了数据库文件中的表,所以我不确定发生了什么
我尝试过使用Windows服务使用我自己的帐户进行测试,我尝试过让本地系统访问我的构建文件夹进行测试
我不确定这是否有帮助,但我还包括了DbContext文件的一部分:
public class CDIContext : DbContext
{
public DbSet<Setting> Settings { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
options.UseSqlite("Data Source=ApplicationData.db");
}
}
public class Setting
{
[Key]
public Int32 Id { get; set; }
[Required]
public Int64 LastUpdateEpochUTC { get; set; }
}
公共类CDIContext:DbContext
{
公共数据库集设置{get;set;}
配置时受保护的覆盖无效(DbContextOptionsBuilder选项)
{
options.UseSqlite(“数据源=ApplicationData.db”);
}
}
公共班级设置
{
[关键]
公共Int32 Id{get;set;}
[必需]
public Int64 lastUpdateAppOchUTC{get;set;}
}
发现Windows服务工作目录位于:
C:\Windows\System32
或C:\Windows\SysWOW64
而不是我的应用程序目录
因此,我的数据库文件是在这些目录中而不是在应用程序目录中搜索的
将接受@ErikEJ建议并更改为完整路径。使用数据库文件的完整路径