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

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

时间: 2024-08-08 15:39:25

asp.net mvc4 MvcMusicStore的相关文章

ASP.NET MVC4+BootStrap 实战(二)

上一篇文章我们讲述了页面初始加载数据的一些东西,本篇我们来讲一下查询按钮和分页按钮.在很久以前我写过一篇ASP.NET MVC4切近实战的文章,有关于分页的代码,本篇我们不采用微软的AJAX框架. 先看一下查询效果,在点击Get按钮之后,会进行AJAX请求. js代码如下 jQuery(document).ready(function () {     setRowBackColor();     $("#btnsearch").click(function () {         

无废话版本-Asp.net MVC4.0 Rasor的基本用法

最近工作有点忙,好久没写东西了!废话不多说了,进入主题! 1.在页面中输出单一变量时候,只要在C#语句之前加上@符号即可,For example: <p>Now Time:@DateTime.Now</p> 请注意,上述example中虽然使用C#语言撰写代码,但输出单一变量的时候,不需要加上分号: 2.在页面上输出一段含有空白字元或者运算子的结果时,必须在前后加上一个小括号,For example: <p> UserName:@(User.Identity.Name+

初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序

初入码田--ASP.NET MVC4 Web应用开发之一  实现简单的登录 初入码田--ASP.NET MVC4 Web应用开发之二 实现简单的增删改查 2016-07-29 再次之前,需要一台电脑(- ̄▽ ̄)-,以及Visual Studio 2013或者更高版本,SQL Sever数据库(暂时不用) 新建项目 下面会出现选择模板选项(我们选择的是MVC模板) 其中,在创建MVC模板时会有身份验证选项.可选择添加的文件夹和核心引用(Web Form和Web API)以及单元测试选项 身份验证分

ASP.NET MVC4入门到精通系列目录汇总(转)

序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,Web开发依旧停留在拖控件的水平,最最基本的算 法,递归.排序(我不要求快速排序,你会冒泡就行了)都不会,数据库方面,很基础的SQL都写不出,分组过滤也不会,更别提性能了,问下数据优化经验,除 了回答加索引基本就没下文了.当然,一些过去N年都是做ASP.NET WebForm开发的,不熟悉MVC,那也没

使用bootstrap+asp.net mvc4+IBatis.Net实现的小程序

这个项目用到了三个技术点 1.bootstap 3.0 2.asp.net mvc4 3.IBatis.Net 这个三个技术点分别解决前端界面展示.中间mvc路由控制.实体框架映射数据访问 重点分页问题花了点时间. 代码发布在GitHub上给感兴趣的人下载来学习 https://github.com/zuifengke/ChuanQI 来自为知笔记(Wiz)

asp.net mvc4 学习1

1 简介:微软在很早就看到了基于windows系统的web开发平台的需求,这时便开始提出自己的解决方案即微软的第一个基于web开发的平台ASP.再后来随着需求和性能的要求再2002年推出第二个解决方案ASP.NET来满足.但是技术不断地在改进很快又有了新的需求,不再基于页面在2008年推出了asp.net mvc的开发模式(模型-视图-控制器),看来五六年技术会得到一次飞跃,当然这只是猜测而已. mvc模式把应用程序分成三层,而且这三层之间的关系是松耦合即相互隔离,互不影响,而这种情况确实最好的

ASP.NET MVC3升级到ASP.NET MVC4 的方法

ASP.NET MVC3升级 ASP.NET MVC4 的方法: 1.先去掉引用的System.Web.Mvc.dll(MVC3版本),重新引入System.Web.Mvc.dll(MVC4版本) 2.替换项目 Web.config 中的 System.Web.Mvc, Version=3.0.0.0 System.Web.WebPages, Version=1.0.0.0 System.Web.Helpers, Version=1.0.0.0 System.Web.WebPages.Razor

[MVC4]初识ASP.NET MVC4

最近一个月都在专心做unity3d的斗地主游戏,从早到晚,最后总算是搞出来了,其中的心酸只有自己知道.最近才有功夫闲下来,还是学习学习之前的老本行--asp.net,现在用.net做项目流行MVC,而不是之前的三层,既然技术在更新,只能不断学习,以适应新的技术潮流! 创建MVC工程 1.打开Visual studio2012,新建MVC4工程 2.选择工程属性,创建MVC工程 3.生成工程的目录 App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Conten

ASP.net MVC4 View设置Html代码显示为文本字符问题

问题描述: 在ASP.net MVC4 框架下,在后台ViewBag上设置连接属性 ViewBag.link = "<a href='/'>"+DisplayName+"</a>"; 前台输出时使用 <span>@ViewBag.link</span> 页面上显示的内容变成了 <a href='/'>"+DisplayName+"</a> 没有做成链接. 修改方法: 前台输出