asp.net mvc4 MvcMusicStore
最近危机感紧迫,总想学些东西。又因为之前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
对这个问题有帮助的就是这三个连接提供的方法。
第一不用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的更多相关文章
- ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存
ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存 part 1:给我点时间,允许我感慨一下2016年 正好有时间,总结一下最近使用的一些技术,也算是为2016年画上一个完 ...
- CentOS上 Mono 3.2.8运行ASP.NET MVC4经验
周一到周三,折腾了两天半的时间,经历几次周折,在小蝶惊鸿的鼎力帮助下,终于在Mono 3.2.8上运行成功MVC4.在此总结经验如下: 系统平台的版本: CentOS 6.5 Mono 3.2.8 J ...
- ASP.NET MVC4入门到精通系列目录汇总
序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...
- [MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据
继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF ...
- 21、ASP.NET MVC入门到精通——ASP.NET MVC4优化
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 删除无用的视图引擎 默认情况下,ASP.NET MVCE同时支持WebForm和Razor引擎,而我们通常在同一个项目中只用到了一种视图引擎 ...
- 最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi
最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi 使用Jexus5.8.1独立版 http://www.linuxdot.net/ ps:该“独立版”支持64位的CentOS ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 第二章
Asp.Net MVC4 + Oracle + EasyUI 第二章 --使用Ajax提升网站性能 本文链接:http://www.cnblogs.com/likeli/p/4236723.html ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 第一章
Asp.Net MVC4 + Oracle + EasyUI 第一章 --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.html 文章集合 ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 序章
Asp.Net MVC4 + Oracle + EasyUI 序章 -- 新建微软实例 本文链接:http://www.cnblogs.com/likeli/p/4233387.html 1. 简 ...
随机推荐
- ZeroMQ接口函数之 :zmq_pgm – ØMQ 使用PGM 进行可靠的多路传输
ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...
- iOS开发中常见问题集锦
在iOS开发中,会出现各种各样的问题.今天,就把这些常见的问题以及各位大牛的解决方案汇总下,方便以后查阅: 常见错误: 1. linker command failed with exit code ...
- Win下常用命令大全
定时关机命令win+R输入 Shutdown -s //后面不加时间参数,默认的是倒计时30秒后关机Shutdown -s -t 0 //立刻关机shutdown -s -t 100 //100s后关 ...
- bzoj 2058+2059+2060 Usaco2010 Nov
三道金组比较容易的题目.. 2058 首先交换次数就是逆序对数,因为只能交换相邻的两数 先对原序列找逆序对数 用树状数组nlogn求出 然后O(n)依次求出其循环序列的逆序对数 比如 3 5 4 2 ...
- linux软件包管理(下)
在vi配置文件的编写的时候我们发现#并不能注释掉一行的信息 那什么才是linux标准的注释信息呢 查看软件对应的软件包命令 rpm –ap| grep vim 大多example是需要的事例文档 双 ...
- php ajax请求和返回
define('NOW_TIME', $_SERVER['REQUEST_TIME']); define('REQUEST_METHOD',$_SERVER['REQUEST_METHOD']); d ...
- Mysql 数据库之修改标的结构
比如我们新建一user表 create table user( id int unsigned auto_increment primary key, name varchar(60) not nul ...
- Socket练习
第一类方法 package socketLianXi; import java.io.IOException; import java.io.InputStreamReader; import jav ...
- VS2015编译Qt5.7.0生成支持XP的静态库(很不错)
一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...
- C# 关键字【转】
C#中的关键字 关键字是对编译器具有特殊意义的预定义保留标识符.它们不能在程序中用作标识符,除非它们有一个 @ 前缀.例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字. 下面是列 ...