SQLite错误1:ASP.Net Core Console App中没有这样的表

时间:2017-10-16 11:35:19

标签: c# entity-framework console-application asp.net-core-2.0

我已按照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();

有人能告诉我这里做错了吗?

由于

2 个答案:

答案 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文件夹来解决此问题。