最近危机感紧迫,总想学些东西。又因为之前mvc的知识不够系统和牢固,所以最近想系统的过一遍。自然买了两本书来看,一边看一边对比。尽量做到每个地方都过一下。今天遇到一个问题所以记一下博客。

环境:win7 之前安装了vs2010sp1 ,mvc4.昨天安装了vs2012.

项目环境:vs2012 +iisexpress mvc4 empty project。 sqlserver compact 本地数据库

项目基础:MvcMusicStore url:http://mvcmusicstore.codeplex.com.

当用nuget添加entity framwork 的时候是最新的版本6.

添加controler的时候会报MVC 基架不支持Entity Framework 6或更高版本。

无奈用nuget卸载Entity Framework 6

后面用PM命令添加了5.0版本(PM> Install-Package EntityFramework -Version 5.0.0)。

重新添加controler

无法检索  元数据 using the same dbconpiledmodel to create contexts against different types of database servers is notsupported.instead,create a separate dbcompiledmodel for each type of server beging used

大概意思就是不同的数据库需要用不同的数据模型上下文来支持。

网上搜索了很多文章http://stackoverflow.com/questions/12323307/error-when-creating-a-controller-in-visual-studio-2012

http://msdn.microsoft.com/zh-cn/data/jj592674.aspx

http://stackoverflow.com/questions/12410673/using-the-same-dbcompiledmodel-to-create-contexts-against-different-types-of-dat

对这个问题有帮助的就是这三个连接提供的方法。

第一不用sqlserver compact 改为用sqlserver

  <connectionStrings>
    <!--<add name="MusicStoreEntities" connectionString="Data Source=|DataDirectory|\MvcMusicStore.sdf" providerName="System.Data.SqlServerCe.4.0" />-->
    <add name="MusicStoreEntities" connectionString="Data Source=.;Initial Catalog=MvcMusicStore;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

第二种是在数据上下文声明的时候显式生命构造函数并且用"DefaultConnection"作为参数。更具msdn上说明的code first模式,初始化时自动构建数据库。

using System.Data.Entity;

namespace MvcMusicStore.Models
{
    public class MusicStoreEntities:DbContext
    {
        public MusicStoreEntities()
            : base("DefaultConnection")
        {

        }
        public DbSet<Album> Albums { get; set; }
        public DbSet<Genre> Genres { get; set; }
        public DbSet<Artist> Artists { get; set; }
    }
}

上面两种方式都能解决问题。至于原因我上网搜索了基本没有说清楚的。个人猜测可能是基架生成代码的时候会通过数据上下文(DbContext)去读取模型对应的属性而他默认是采用sqlserver的连接,但是上下文对应的连接时用的sqlserver conpact 本地数据库的连接。导致两种数据库冲突。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

之前还遇到一个问题提示

unable to cast object of type 'System.Data.Entity.Core.Objects.ObjectContext' to type 'System.Data.Objects.ObjectContext'

解决的过程很曲折,反正一句话就是不但查资料,不断尝试,最终解决问题的方式是卸载ef6,sqlserver compact组件,安装ef5,干掉webconfig中的ef对象工厂的配置。

这个问题困扰了我一天半的时间,中途想过放弃,但是一狠心有继续查资料解决,再次说明了一个问题,坚持很重要。

还有就是想说国外的环境确实要好一点,这两个问题都是国外资料有用,国内的几乎没有这类问题的解决办法。所以又这篇文章的诞生。

如果遇到类似问题欢迎探讨,不喜勿喷,有错欢迎帮我指正。qq:513439252

asp.net mvc4 MvcMusicStore的更多相关文章

  1. ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存

    ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存 part 1:给我点时间,允许我感慨一下2016年 正好有时间,总结一下最近使用的一些技术,也算是为2016年画上一个完 ...

  2. CentOS上 Mono 3.2.8运行ASP.NET MVC4经验

    周一到周三,折腾了两天半的时间,经历几次周折,在小蝶惊鸿的鼎力帮助下,终于在Mono 3.2.8上运行成功MVC4.在此总结经验如下: 系统平台的版本: CentOS 6.5 Mono 3.2.8 J ...

  3. ASP.NET MVC4入门到精通系列目录汇总

    序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...

  4. [MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据

    继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF ...

  5. 21、ASP.NET MVC入门到精通——ASP.NET MVC4优化

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 删除无用的视图引擎 默认情况下,ASP.NET MVCE同时支持WebForm和Razor引擎,而我们通常在同一个项目中只用到了一种视图引擎 ...

  6. 最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi

    最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi 使用Jexus5.8.1独立版 http://www.linuxdot.net/ ps:该“独立版”支持64位的CentOS ...

  7. Asp.Net MVC4 + Oracle + EasyUI 学习 第二章

    Asp.Net MVC4 + Oracle + EasyUI 第二章 --使用Ajax提升网站性能 本文链接:http://www.cnblogs.com/likeli/p/4236723.html ...

  8. Asp.Net MVC4 + Oracle + EasyUI 学习 第一章

    Asp.Net MVC4 + Oracle + EasyUI  第一章 --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.html 文章集合 ...

  9. Asp.Net MVC4 + Oracle + EasyUI 学习 序章

    Asp.Net MVC4 + Oracle + EasyUI  序章 -- 新建微软实例 本文链接:http://www.cnblogs.com/likeli/p/4233387.html 1.  简 ...

随机推荐

  1. CSS居中布局总结【转】

    居中布局 <div class="parent"> <div class="child">demo</div> </d ...

  2. 使用BigDecimal进行精确运算以及格式化输出数字

    一.引言    借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供 ...

  3. Xamarin的不归路-连接MAC失败

    昨天费了老大劲才配置连接好MAC虚拟机,今天居然又连接不上了. 记录一下最后的解决办法: 直接用“Add Mac”添加虚拟机,一定要填写ip地址,为啥要写ip?我也不知道,因为我填写“MacdeMac ...

  4. jQuery全屏滚动插件fullPage.js

    github https://github.com/alvarotrigo/fullPage.js demo http://alvarotrigo.com/fullPage/ 脚手架 <link ...

  5. Xamarin Android 绑定jar库同时将so库打包进去

    1.在创建的Bindings Library项目中,新建Assets目录: 2.Assets目录下再分别创建armeabi,armeabi-v7a,x86三个目录: 3.将so文件分布copy到三个目 ...

  6. 尚德,国美 interview summary

    尚德 Q:SDWebimage源代码,cell重用.先请求出来小头像,再请求出大头像?怎么处理? SDWebImageDownloader 直接给cell设置图片会怎样 A:图片URL相同,比较nsd ...

  7. Tomcat常见问题汇总

    1.在服务器上一定要开启-server参数 #直接在一堆注释下添加即可 #即是在 # OS specific support.注释之前 JAVA_OPTS= -server 2.tomcat启动很慢  ...

  8. 适应laytpl 渲染模板数据

    前言 当我们异步读取数据过来的时候,还要通过手动赋值,显示在页面上吗,那样你就太OUT了,哥告诉你个新方式. 那就是 laytpl 插件 用法一:渲染单条数据 <table id="B ...

  9. ORM系列之三:Dapper

    目录 1.Dapper 简介 2.Dapper 安装 3.Dapper 使用 Dapper简介 Dapper是一个轻量级的ORM框架,短小精悍,正如其名.对于小项目,使用EF,NHibernate这样 ...

  10. FDCT变换 公式法

    // 对亮度信号进行FDCT变换// @param   data    亮度信号的存储数组void CompressEncode::standardFDCT(BYTE data[MATRIXSIZE] ...