我已按照MS提供的文档说明如何连接它。但是,我没有成功从数据库中获取数据。
我收到的错误是:
Microsoft.Data.Sqlite.SqliteException: SQLite Error 1: 'no such table: ModelRecords'.
我像这样设置DBContext:
public class SsimDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
string db_file = Environment.GetEnvironmentVariable("DocumentUpdaterDbLocation");
Console.WriteLine(File.Exists(db_file) ? $"Database found at {db_file}" : $"Could not find database at {db_file}");
optionsBuilder.UseSqlite($"Filename={db_file}");
}
public DbSet<ST_Record> ModelRecords { get; set; }
}
这里的不同之处在于我从环境变量获取数据库的路径。当我将此变量写入控制台时,它会显示我期望数据库的路径:
Database found at C:\develop\temp\LFReview\sdb\MasterSdb.sdb
ST_Record表定义为:
public class ST_Record
{
[Key]
public int ST_RecordID { get; set; }
public int ProjectID { get; set; }
public string Name { get; set; }
public int ID { get; set; }
public string Description { get; set; }
}
在数据库中运行此查询:
SELECT COUNT(*) FROM ST_Record;
返回:
COUNT(*)
1808
最后,错误在这里抛出:
List<ST_Record> stt = _context.ModelRecords.Select(r => r).ToList();
有人能告诉我这里做错了吗?
由于
答案 0 :(得分:0)
在.csproj文件的TargetFramework属性下方添加此行。
120
更多信息:https://docs.microsoft.com/en-us/ef/core/get-started/overview/first-app?tabs=visual-studio
答案 1 :(得分:-1)
我今天遇到了这个问题,有时您的bin文件夹中不会生成db文件,因此您会收到这样的错误
Microsoft.Data.Sqlite.SqliteException: SQLite Error 1: 'no such table:
您可以尝试通过将db文件从项目文件夹复制到bin文件夹来解决此问题。