当前位置:首页 > Windows程序 > 正文

MVC开发常见异常处理

2021-03-27 Windows程序

一、EF框架问题

错误的提示为:Model compatibility cannot be checked because the database does not contain model metadata.Model compatibility can only be checked for databases created using Code First or Code First Migrations.

分析:这是EF在访问数据库发现实体类与数据库的表不一致。

解决方法:

方法一:注释掉EF的检查实体类与数据表一致性的语句。

将global.asax.cs 中 application_start 第一行注掉,即可, protected void Application_Start() { // System.Data.Entity.Database.SetInitializer(new MvcMusicStore.Models.SampleData()); AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); }

方法二:删除数据表,EF将根据实体类重新创建数据表

USE [master] GO /****** Object: Database [DBname] ******/ ALTER DATABASE [DBname] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ALTER DATABASE [DBname] SET SINGLE_USER WITH NO_WAIT DROP DATABASE [DBname] GO 复制代码

二、在建立区域(Area)时常见异常

今天,,在.net4.5,mvc4下新建了个区域,运行起来就报这个错误:

命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)

后来发现问题竟然出现在,区域文件夹中view文件夹下的Web.config文件配置中:

<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Optimization"/>
    <add namespace="System.Web.Routing" />
  </namespaces>
</pages>

这个配置中自动引入了System.Web.Optimization,只要将<add namespace="System.Web.Optimization"/>去掉就可以了

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68597.html