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. 简 ...
随机推荐
- 25 Killer Actions to Boost Your Self-Confidence
25 Killer Actions to Boost Your Self-Confidence Once we believe in ourselves, we can risk curiosity, ...
- iOS文档注释
Eclipse和IntelliJ IDEA系的IDE都有自动生成文档注释的功能,Xcode虽然安装了VVDocument,但是仍然感觉注释的功能不是很完善,于是今天整理了一下书写文档注释的一些用法. ...
- python 进程和线程
python中的进程.线程(threading.multiprocessing.Queue.subprocess) Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就 ...
- wordpress 安装 "Table Prefix" must not be empty.
时隔一年了,一年没有写代码了.又重拾代码,心情无法言表啊.互联网还是有机会的. 安装wordpress怎么装 setp2了就 报 "Table Prefix" must not b ...
- 配置Office 365单点登录摘要
O365: 如果O365账号之前做过测试,则停用同步,强制删除已有用户涉及命令:Remove-MsolUser -UserPrincipalName zhang_san@company.cn (-Re ...
- 关于IIF多个条件的用法
IIF(yyzt = 0, '生产', IIF(yyzt = 10,'入库',IIF(yyzt=20,'销售经理',IIF(yyzt=30,'用户','其他'))))
- oracle 关键字
Oracle 关键字(保留字) DBA账户下执行SQL语句:select * from v$reserved_words ; 可得到所有的关键字: 1 ! 1 2 & 1 3 ( 1 4 ...
- 简单的Markdown功能实现——marked模块的使用
marked是一个markdown 解析.编译器,通过引入marked模块,可以实现一个简单的markdown编辑器.使用方式如下: Install 新建一个项目文件夹,在项目中下载marked模块 ...
- spring_异常提示1
nested exception is java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource ------- 缺少j ...
- RabbitMQ模拟器使用方法
同事推荐了一个很好玩的RabbitMQ模拟器,记录一下简要使用方法. 模拟器地址 http://tryrabbitmq.com/ 使用方法: 直接将画框左面的图标拖进画图区,构建想要的拓扑图: 按住A ...