在mvc5中实现OnModelCreating

时间:2014-11-24 05:20:10

标签: c# asp.net-mvc entity-framework asp.net-mvc-5

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

  

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

在模型中,每件事情都很好,也在数据库中。我知道这是由dbcontext中的缓存引起的。我想在每次运行项目时清除并重新绑定dbcontext。我用谷歌搜索解决方案,我得到了this解决方案,但是在声明这个之后我无法进行所需的操作。

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的新手,我不知道如何更新实体框架。有什么解决方案吗?

1 个答案:

答案 0 :(得分:0)

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

  

然后缓存该上下文的模型,该模型适用于app域中上下文的所有其他实例。

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

运行SQL Profile可以获得一些额外的信息,因为它可以显示错误发生时正在执行的确切查询。但是您需要配置分析器以显示错误。