一、EF框架问题

C#-MVC开发常见异常处理

错误的提示为: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"/>去掉就可以了

 

相关文章:

  • 2021-08-27
  • 2021-10-15
  • 2021-04-13
  • 2021-09-15
  • 2021-10-13
  • 2022-01-13
  • 2022-12-23
猜你喜欢
  • 2021-10-19
  • 2022-12-23
  • 2021-11-24
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
  • 2022-12-23
相关资源
相似解决方案