C# | EF框架 | 查询表格时陈诉表格不存在

打印 上一主题 下一主题

主题 1008|帖子 1008|积分 3024

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 题目分析



  • 错误形貌

    • 当 EF Core 尝试查询 Users 表时,SQLite 陈诉该表不存在。
    • 这通常是由于:

      • 数据库迁移未精确应用。
      • 数据库文件路径不精确,EF Core 使用了空的 SQLite 文件。
      • 数据库文件被手动删除或覆盖。



2. 解决方案

步调 1:检查数据库文件路径

确保 appsettings.json 中的毗连字符串指向精确的 SQLite 文件路径。例如:
  1. "ConnectionStrings": {
  2.     "DefaultConnection": "Data Source=app.db"
  3. }
复制代码


  • 如果路径不精确,EF Core 大概会创建一个新的空数据库文件。
  • 确保项目目次下存在 app.db 文件。

步调 2:验证迁移是否已应用


  • 检查迁移历史
    打开 SQLite 数据库文件(使用工具如 DB Browser for SQLite),查看 __EFMigrationsHistory 表是否存在,并确认此中包含已应用的迁移记录。
  • 重新应用迁移
    如果迁移未精确应用,可以尝试以下下令:
    1. dotnet ef database update
    复制代码

清算并重新生成数据库

如果上述方法无效,可以清算现有数据库并重新生成:

  • 删除 SQLite 数据库文件
    删除项目目次下的 app.db 文件:
    1. rm app.db # Linux/MacOS
    2. del app.db # Windows
    复制代码
  • 移除现有迁移
    删除现有的迁移文件(位于 Migrations 文件夹中):
    1. dotnet ef migrations remove
    复制代码
    如果迁移文件已被手动删除,跳过此步调。
  • 添加新迁移
    创建新的迁移以反映当前模型:
    1. dotnet ef migrations add InitialCreate
    复制代码
  • 更新数据库
    应用新迁移以生成数据库和表:
    1. dotnet ef database update
    复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表