在 mvc5 中实现 OnModelCreate

本文关键字:OnModelCreate 实现 mvc5 | 更新日期: 2023-09-27 18:31:34

我正在使用SQL Server R2作为我的数据库。现在我经常收到这种错误:

在 EntityFramework.SqlServer 中发生了类型为"System.Data.Entity.Core.EntityCommandExecutionException"的异常.dll但未在用户代码
中处理 其他信息:执行命令定义时出错。有关详细信息,请参阅内部异常。
InnerException: {"无效的列名'someColumn'。"}

在模型中,一切都很好,在数据库中也是如此。我知道这是由于数据库上下文中的缓存。我想在每次运行项目时清除并重新绑定数据库上下文。我用谷歌搜索了解决方案,我得到了这个解决方案,但是在这样声明后我无法执行所需的操作。

public class EFDbContext: DbContext
{
    public DbSet < utblCategoryMaster > utblCategoryMasters { get; set; }
    public DbSet < utblsubCategoryMaster > utblSubCategoryMasters { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
    }
}

我是 MVC 的新手,我不知道如何刷新实体框架。有什么解决办法吗?

在 mvc5 中实现 OnModelCreate

实体框架模型缓存仅在 AppDomain 级别完成,因此,如果生成项目、重新启动 IIS 或回收应用程序池,缓存将消失。引用您分享的链接:

然后缓存该上下文的模型,并用于应用程序域中上下文的所有其他实例。

我认为问题是,模式和映射文件之间存在不匹配。是否可以仔细检查数据库、连接字符串和架构/映射文件?

运行 SQL 配置文件可以获得一些其他信息,因为它可以显示发生错误时正在执行的确切查询。但是,您需要配置探查器以显示错误。