EntityFrameWork Core 5.0尝试从不存在的原始查询中删除dbset



我在数据库上下文中为原始查询或存储过程创建了数据库集,并在OnModelCreating下使用了modelBuilder.Entity<_Entity>().HasNoKey().ToView(null)。我在我的控制器中使用它们,如下所示:

_context._RTable.FromSqlRaw("exec sp_Run @thiscasenumber", casenumber).AsNoTracking().ToList();

它曾经在EF Core 3.1上运行良好。我最近将我的解决方案升级到5.0。现在,当我尝试进行添加迁移时,它第一次完成任务时,一切都很好,但在不做任何更改的情况下,在更新数据库后,当我再次运行添加迁移时时,它会创建一个迁移,并尝试删除这些不存在的实体。migrationBuilder.DropTable(name: "_RTable");

是否有任何方法可以防止EF将这些";表格";哪些是不存在的?

感谢

这是由于.NET 5中.ToView(null)行为的中断更改。

基于这篇文章,您应该使用.ToTable("ViewName", t => t.ExcludeFromMigrations())从迁移中排除enity集。

最新更新