EF Core 7.0出现SqlException:无效对象名'NewTableReqs'求助
解决EF Core 7.0中"Invalid object name 'NewTableReqs'"错误
常见原因及修复方案
表名映射不匹配
EF Core默认会将DbSet<T>的名称(这里是NewTableReqs)作为数据库表名,若你的实际表名是单数NewTableReq或其他名称,就会触发该错误。可通过两种方式修正:- 数据注解指定表名:在Model类上添加
[Table]特性namespace Project.Models { [Table("NewTableReq")] // 替换为数据库中实际的表名 public class NewTableReq { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int NewTableReqID { get; set; } [Required] public int FlagID { get; set; } } } - Fluent API配置:在DbContext的
OnModelCreating方法中定义表名protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<NewTableReq>().ToTable("NewTableReq"); // 替换为实际表名 }
- 数据注解指定表名:在Model类上添加
数据库架构不匹配
若表存在于非默认架构(如不是dbo),需明确指定架构:- 数据注解:
[Table("NewTableReq", Schema = "YourSchemaName")] - Fluent API:
modelBuilder.Entity<NewTableReq>().ToTable("NewTableReq", "YourSchemaName");
- 数据注解:
DbContext连接配置错误
确认DbContext的连接字符串指向的是正确的数据库,可通过数据库管理工具(如SSMS)验证目标表是否存在于该库中,且名称拼写完全一致。迁移未正确执行
若通过EF迁移创建表,可能迁移未生效。重新执行迁移命令:Add-Migration CorrectTableName Update-Database
内容的提问来源于stack exchange,提问作者FullStack-.NetMVC-BizMule-Dev
相关产品推荐
相关产品推荐

