【发布时间】:2018-03-27 22:04:26
【问题描述】:
我已按照有关如何使用 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();
谁能告诉我我在这里做错了什么?
谢谢
【问题讨论】:
-
如果您的表命名为 ST_Record,则您的命名已关闭。 EF 不会对此提供帮助。见stackoverflow.com/questions/20184644/…
标签: c# entity-framework console-application asp.net-core-2.0