Asp.Net MVC5入门学习系列⑦

原文:Asp.Net MVC5入门学习系列⑦

接着上篇结尾所说,如果开发中刚才遇到Model需要添加或者减少字段/属性的话,但是刚好你也利用EF的Code frist通过Model生存的数据库,这时改怎么办?

  添加一个字段

  我们现在要给Movie实体模型类添加一个评价的字段该怎么搞!我们知道我们默认使用EF code frist生存的数据库是同步性的,这样才能便于我们更好的开发,如果实体模型和数据库不同步的话,实体框架应该会抛出异常。

 code frisr设置模型库迁移

 在VS里我们先移除dataBase,具体操作如下:

 

删除EF连接,为了是我们的应用程序不出错,我们需要做一下事情,具体操作如下:

完了在控制台窗体输入一下内容:

运行完控制台的命令后我的项目结构变化如下:

多了一个数据迁移的Migrations文件夹,这个文件夹就是code frist迁移生产的,里面有一个历史记录的类还有一个配置信息类。我们打开Configuration.cs类,其面貌如下:

我们对Configuration.cs类的Seed方法进行从新构造,修改代码如下:

 

接下的事情就是我们需要创建一个迁移DbMigration类,该类负责创建一个database,前面我们不是删除了EF创建的database么。接下来我们在控制台窗体输入下面的命令,具体操作如下:

这个命令就是新构建database并对其进行初始化动作。动作执行完成后你会发现,VS会自动生成一个这个文件,具体如下:

可以看到这个类里面有2个方法,就代码直观上解释的话这个类在运行时的话有一个是在降级过程中执行的操作,另外一个则是在升级过程中的操作。生产的这个类包含创建数据库的模式代码,接下来的事情呢!就是这么把这个数据库创建出来,并且把我们刚才加的测试数据给添加到数据库中,接下来我们继续在控制台窗体操作,具操作如下:

待命令跑完之后我们来运气我们的应用程序看下效果,跑起来我们的程序看我们刚才添加的数据是否能正常显示:

怎么样,效果达到了吧!关于迁移这里可能有很多描述不是很清楚的地方,所以还请各位前辈朋友多多指教。

现在进入正题如果我给Model实体类添加一个字段的话怎么办,比如我给Movie类添加了下面的字段,如下:

添加一个这个属性后,你会立马想到那是不是所有的页面都要去加这个东西,还有Controller里面Action上带Bind[Inculd(xxx,xxx,xxx,xx)]这些地方是不是都要去加这个东西呢,具体修改的地方如下:

Index.cshtml页面:

Create.cshtml修改如下:

 我们现在就直接先把程序运行起来看看会出现什么问题:

来个一个大黄页,为什么呢!因为我们在代码迁移数据的时候没有给我们刚才新加的字段所以程序在这里不认识了,所以就出错了,那改呗,哪里出错就改哪里!我们修改Cofiguration类里的Seed方法如下:

修改完这个说还会出错吗?答案是肯定会的,为什么呢!是的我这里是添加了Model的新字段过来,但是数据库里有没有这个字段呢?我们先一步一步走着看,按照常规思维这里是应该先给数据库添加这么一个字段,那么我们用控制台添加该字段,具体操作如下:

当我们执行完这个命令的话,就会在模型快照中添加上这么一个字段同时执行完这个的时候VS也会生出这么一段代码,如下:

然后我们需要在控制台在更新一下datebase,具体操作如下:

更新完后,我们在运行我们的程序看看效果:

然后我们修改(哦,修改页面也需要把Rating这个字段也加上)一个Rating为空的数据,看下效果:

使用这种方式添加字段就必须要改所有用到这些字段的页面手动添加上对应的代码,如上面在index/create/edit/delete.cshtml页面上添加代码。关于这篇的分享的东西就先介绍到这里,通过修改实体模型我们可以看到实体模型怎么和数据库进行同步,这边文章时间有些紧张有些地方可能描述的不是很清楚,还请各位朋友见谅及指导,哪里有不对的地方,还望指导我会第一时间去改正,这篇的话就先到这里吧!

 

时间: 2024-10-04 02:58:03

Asp.Net MVC5入门学习系列⑦的相关文章

Asp.Net MVC5入门学习系列⑤

原文:Asp.Net MVC5入门学习系列⑤ 检查VS生产的编辑方法和编辑窗体      前面我们一步使用强类型,然后创建Controller(控制器)的时候,VS默认已经给我们把CURD都简单的实现了.这篇的话就简单的看下它默认实现的代码,VS终归强大,但是方便的同时也是在弱化我们,当然大牛级别的这样搞是为了效率,我们新手的话还是建议不要去偷那个懒,至于为什么?不解释啦.....    我们打开我们的创建的实体对象Movie类,然后再ReleaseDate属性上添加一些标识特性,具体如下:  

Asp.Net MVC5入门学习系列②

原文:Asp.Net MVC5入门学习系列② 添加一个Controller(控制器)    因为我们用的是Asp.Net MVC,MVC最终还是一套框架,所以我们还是需要遵循它才能玩下去,或者说是更好的利用来便于我们的开发,要是对MVC概念还有点模糊的,可以去我以前写的第一话 Asp.Net MVC 3.0[Hello World!]里开始部分就对此做了阐述.假定所有跟我一起学的都了解MVC的这么一个概念,我们就开始下面的步骤了: 现在我们开始添加一个Controller,具体如下: 我们选择创

Asp.Net MVC5入门学习系列⑥

原文:Asp.Net MVC5入门学习系列⑥ 接着上次的篇幅,我们这篇手动来写一个查询的流程代码!     搜索/查询 流程功能的实现     那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去Controller(控制器)里去搞一个搜索(查询)的方法(action),那么我就说做搜索功能吧!搜索可能是根据名字搜索,如果根据某一个条件搜索的话,那么我们的方法就需要一个参数,如果是多个条件的话就需要多个参数给方法传递多个参数,这么说你的方法的参数多少是不是就取决你我们的搜索条

Asp.Net MVC5入门学习系列④

原文:Asp.Net MVC5入门学习系列④ 添加Model且简单的使用EF    对于EF(EntityFramework)不了解的朋友可以去百度文科或者在园子里搜一些简资源看下,假如和我一样知道EF的概念,那么就知道EF有一个code first的特性,什么意思呢!说的通俗简单明了点就是:通过代码映射到数据库!有朋友会说这里不是添加Model说这个EF干啥呢!说这个code first呢就是我们在一会添加Model的同时我打算利用EF的code first特性把我们的Model映射到数据库,

Bootstrap3.0入门学习系列:学习从现在开始

前言 当下最流行的前端开发框架Bootstrap,可大大简化网站开发过程,从而深受广大开发者的喜欢.本文总结了Bootstrap之所以广泛流传的 11大原因.如果你还没有使用Twitter Bootstrap,建议你去了解一下.我也是最近才有所发现的,不过有更好的消息,在前两天微软发布的VS2013正式版中,也已经将 BootStrap3.0的版本加入了额,连微软都看到bootStrap的强大,而且它的确很不错,所以我也不得不学习. Bootstrap深受广大屌丝喜爱的原因到底是什么呢? 1.节

ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)

UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新.通过本文来学习一下UpdatePanel简单的使用方法(第一篇). 一.UpdatePanel控件概述 UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Ex

ASP.NET AJAX入门系列(1):概述

经常关注我的Blog的朋友可能注意到了,在我Blog的左边系列文章中,已经移除了对Atlas学习手记系列文章的推荐,因为随着ASP.NET AJAX 1.0 Beta版的发布,它们已经不再适用,为了不继续误导广大朋友,所以不再作为推荐系列文章,如果有需要参考的朋友,可以直接到随笔分类中查看. ASP.NET AJAX Beta改动如此之大,鉴于又没有很好的中文参考资料,所以决定最近开始写作ASP.NET AJAX入门系列,这个系列我会把ASP.NET AJAX当作一个全新的东西去对待,不再考虑以

Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中]

原文:Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中] 前言 本来一直参见于微软官网进行学习的, 官网网址http://www.asp.net/web-api.出于自己想锻炼一下学习阅读英文文章的目的,又可以学习下微软新发布的技术,其实也很久了,但自己菜鸟一枚,对自己来说都是新技术了.鉴于以上两个原因,本人打算借助google翻译和有道词典,来翻译学习这个系列,并通过博客园来记录自己的翻译学习过程.由于自己阅读水平的确太菜,在借助工具的情况下,有时候搞出来的也是蹩脚的语句,

ASP.NET MVC 5 学习教程:快速入门

原文 ASP.NET MVC 5 学习教程:快速入门 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Server LocalDB Edit方法和Edit视图详解 添加查询 Entity Framework 数据迁移之添加字段 添加验证 Details 和 Delete 方法详解 本教程将介绍如何使用Visual Studio Express 201