你的位置:首页 > ASP.net教程

[ASP.net教程]ASP.NET MVC系列:为已有模型添加新的属性


  在模型类Movie中添加一个新的属性Rating

  重新编译重新生成解决方案,快捷键Ctrl+Shift+B;然后对去对应的视图添加新的数据,如Index.cshtml

  编辑完成,运行之后系统报了一个异常:“System.InvalidOperationException”类型的异常在 EntityFramework.dll 中发生,但未在用户代码中进行处理

  造成这个异常的原因是Movie类中比数据库中多出了一个Rating列,所以我们需要去数据库中添加上Rating字段,你只需要打开数据库文件编辑就行;

  现在我们来介绍另外一种方法:使用 Code First 迁移更新数据库;首先我们需要将App_Data文件夹下的数据库文件(Movies.mdf)删除,然后打开“程序包管理器控制台”(你可以在“工具”菜单下的“NUGet程序包管理器”中找到它),并在控制台中输入 Enable-Migrations -ContextTypeName MvcMovie.Models.MovieDBContext

  成功后你会看到解决方案中多了一个Migrations文件夹和Configuration.cs文件,数据库每次迁移都会调用Configuration类中的Seed方法,所以我们可以在该方法中对数据库做一些操作,如初始化值什么的

  现在,你还需要创建一个用于数据库迁移的 DbMigration类;在控制台中继续输入命令 add-migration Initial

  查看数据库表结构,我们看到了新增的Rating列;现在,我们添加新的属性可以不用再删除数据库而直接添加了,只需要在控制台执行 add-migration 属性名 和 update-database 指令就行;如果在执行 update-database 过程中一直遇到错误,你可以将Migrations文件夹删除了之后重新开始做上面的操作

  http://www.asp.net/mvc/overview/older-versions/getting-started-with-aspnet-mvc4/adding-a-new-field-to-the-movie-model-and-table